* nsmenu.m (ns_popup_dialog): Add an "ok" button if no buttons
authorJan Djärv <jan.h.d@swipnet.se>
Mon, 25 Jul 2011 21:49:42 +0000 (23:49 +0200)
committerJan Djärv <jan.h.d@swipnet.se>
Mon, 25 Jul 2011 21:49:42 +0000 (23:49 +0200)
are specified.

Fixes: debbugs:9168

src/ChangeLog
src/nsmenu.m

index 3fc8067..dd25d15 100644 (file)
@@ -1,3 +1,8 @@
+2011-07-25  Jan Djärv  <jan.h.d@swipnet.se>
+
+       * nsmenu.m (ns_popup_dialog): Add an "ok" button if no buttons
+       are specified (Bug#9168).
+
 2011-07-25  Paul Eggert  <eggert@cs.ucla.edu>
 
        * bidi.c (bidi_dump_cached_states): Fix printf format mismatch.
index 6a9ee7d..6931b7a 100644 (file)
@@ -1340,7 +1340,7 @@ Lisp_Object
 ns_popup_dialog (Lisp_Object position, Lisp_Object contents, Lisp_Object header)
 {
   id dialog;
-  Lisp_Object window, tem;
+  Lisp_Object window, tem, title;
   struct frame *f;
   NSPoint p;
   BOOL isQ;
@@ -1389,6 +1389,14 @@ ns_popup_dialog (Lisp_Object position, Lisp_Object contents, Lisp_Object header)
   p.x = (int)f->left_pos + ((int)FRAME_COLUMN_WIDTH (f) * f->text_cols)/2;
   p.y = (int)f->top_pos + (FRAME_LINE_HEIGHT (f) * f->text_lines)/2;
 
+  title = Fcar (contents);
+  CHECK_STRING (title);
+
+  if (NILP (Fcar (Fcdr (contents))))
+    /* No buttons specified, add an "Ok" button so users can pop down
+       the dialog.  */
+    contents = Fcons (title, Fcons (Fcons (build_string ("Ok"), Qt), Qnil));
+
   BLOCK_INPUT;
   dialog = [[EmacsDialogPanel alloc] initFromContents: contents
                                            isQuestion: isQ];