aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorMiles Bader <[email protected]>2007-05-01 23:03:36 +0000
committerMiles Bader <[email protected]>2007-05-01 23:03:36 +0000
commit212c766631c7de92e9dde63d842c5e16338dbaf0 (patch)
tree79ba5b940ed2b366b3f19d35c52fe4ecd5742d78 /src
parent59c92ade0ab7972baabbe04866922575c98a0f48 (diff)
parent6c60609353d509d8c4e0bb2cb5bd3119ca7f153c (diff)
Merge from emacs--devo--0
Patches applied: * emacs--devo--0 (patch 713-725) - Update from CVS - Merge from emacs--rel--22 - Merge from emacs--rel--22: lisp/dired-x.el: Revert 2007-04-06 change. - Merge from gnus--rel--5.10 * emacs--rel--22 (base, patch 1-5) - tag of [email protected]/emacs--devo--0--patch-709 - Sync to CVS tag EMACS_22_BRANCHPOINT - Sync to CVS branch EMACS_22_BASE - Update from CVS * gnus--rel--5.10 (patch 217) - Update from CVS Revision: [email protected]/emacs--unicode--0--patch-202
Diffstat (limited to 'src')
-rw-r--r--src/ChangeLog29
-rw-r--r--src/gtkutil.c10
-rw-r--r--src/insdel.c6
-rw-r--r--src/lisp.h6
-rw-r--r--src/lread.c2
-rw-r--r--src/macmenu.c10
-rw-r--r--src/xdisp.c2
-rw-r--r--src/xmenu.c8
8 files changed, 66 insertions, 7 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index e3c660dbba..742bfc3824 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,32 @@
+2007-05-01 YAMAMOTO Mitsuharu <[email protected]>
+
+ * macmenu.c (mac_dialog_show): Apply 2007-04-27 change for xmenu.c.
+ (Fx_popup_dialog) [MAC_OSX]: Likewise.
+
+2007-04-29 Richard Stallman <[email protected]>
+
+ * insdel.c (replace_range): For undo, record insertion first.
+
+2007-04-29 Andreas Schwab <[email protected]>
+
+ * lisp.h (VECSIZE): Use OFFSETOF.
+
+2007-04-29 YAMAMOTO Mitsuharu <[email protected]>
+
+ * xdisp.c (try_window_reusing_current_matrix): Fix number of
+ disabled lines.
+
+2007-04-28 Richard Stallman <[email protected]>
+
+ * lread.c (read_escape): In a string, \s is always space.
+
+2007-04-27 Jan Dj,Ad(Brv <[email protected]>
+
+ * xmenu.c (xdialog_show): Call Fredisplay before showing the dialog.
+
+ * gtkutil.c (xg_update_menubar, create_menus): Create empty
+ submenu for menu bar items.
+
2007-04-24 Chong Yidong <[email protected]>
* xdisp.c (redisplay_window): Use BEG_UNCHANGED and END_UNCHANGED
diff --git a/src/gtkutil.c b/src/gtkutil.c
index 8dfcf84f0f..02e42f7485 100644
--- a/src/gtkutil.c
+++ b/src/gtkutil.c
@@ -2192,7 +2192,9 @@ create_menus (data, f, select_cb, deactivate_cb, highlight_cb,
cl_data,
&group);
- if (item->contents)
+ /* Create a possibly empty submenu for menu bar items, since some
+ themes don't highlight items correctly without it. */
+ if (item->contents || menu_bar_p)
{
GtkWidget *submenu = create_menus (item->contents,
f,
@@ -2479,8 +2481,14 @@ xg_update_menubar (menubar, f, list, iter, pos, val,
cl_data,
&group);
+ /* Create a possibly empty submenu for menu bar items, since some
+ themes don't highlight items correctly without it. */
+ GtkWidget *submenu = create_menus (NULL, f,
+ select_cb, NULL, highlight_cb,
+ 0, 0, 0, 0, cl_data, 0);
gtk_widget_set_name (w, MENU_ITEM_NAME);
gtk_menu_shell_insert (GTK_MENU_SHELL (menubar), w, pos);
+ gtk_menu_item_set_submenu (GTK_MENU_ITEM (w), submenu);
g_list_free (*list);
*list = iter = gtk_container_get_children (GTK_CONTAINER (menubar));
diff --git a/src/insdel.c b/src/insdel.c
index d7ba13ecbc..c1c1ae882f 100644
--- a/src/insdel.c
+++ b/src/insdel.c
@@ -1636,8 +1636,12 @@ replace_range (from, to, new, prepare, inherit, markers)
if (! EQ (current_buffer->undo_list, Qt))
{
+ /* Record the insertion first, so that when we undo,
+ the deletion will be undone first. Thus, undo
+ will insert before deleting, and thus will keep
+ the markers before and after this text separate. */
+ record_insert (from + SCHARS (deletion), inschars);
record_delete (from, deletion);
- record_insert (from, inschars);
}
GAP_SIZE -= outgoing_insbytes;
diff --git a/src/lisp.h b/src/lisp.h
index 6ba01b1e8f..850e15ec2c 100644
--- a/src/lisp.h
+++ b/src/lisp.h
@@ -738,9 +738,9 @@ struct Lisp_Vector
/* If a struct is made to look like a vector, this macro returns the length
of the shortest vector that would hold that struct. */
-#define VECSIZE(type) ((sizeof (type) - (sizeof (struct Lisp_Vector) \
- - sizeof (Lisp_Object)) \
- + sizeof(Lisp_Object) - 1) /* round up */ \
+#define VECSIZE(type) ((sizeof (type) \
+ - OFFSETOF (struct Lisp_Vector, contents[0]) \
+ + sizeof(Lisp_Object) - 1) /* round up */ \
/ sizeof (Lisp_Object))
/* Like VECSIZE, but used when the pseudo-vector has non-Lisp_Object fields
diff --git a/src/lread.c b/src/lread.c
index 5d46507dc7..ebc42e361e 100644
--- a/src/lread.c
+++ b/src/lread.c
@@ -2057,7 +2057,7 @@ read_escape (readcharfun, stringp)
case 's':
c = READCHAR;
- if (c != '-')
+ if (stringp || c != '-')
{
UNREAD (c);
return ' ';
diff --git a/src/macmenu.c b/src/macmenu.c
index c7a84df710..a5196a156e 100644
--- a/src/macmenu.c
+++ b/src/macmenu.c
@@ -1011,6 +1011,11 @@ for instance using the window manager, then this produces a quit and
DialogItemIndex item_hit;
Lisp_Object tem;
+ /* Force a redisplay before showing the dialog. If a frame is
+ created just before showing the dialog, its contents may not
+ have been fully drawn. */
+ Fredisplay (Qt);
+
tem = Fstring_match (concat3 (build_string ("\\("),
call0 (intern ("sentence-end")),
build_string ("\\)\n")),
@@ -2943,6 +2948,11 @@ mac_dialog_show (f, keymaps, title, header, error_name)
first_wv = wv;
}
+ /* Force a redisplay before showing the dialog. If a frame is created
+ just before showing the dialog, its contents may not have been fully
+ drawn. */
+ Fredisplay (Qt);
+
/* Actually create the dialog. */
#if TARGET_API_MAC_CARBON
menu_item_selection = create_and_show_dialog (f, first_wv);
diff --git a/src/xdisp.c b/src/xdisp.c
index eb97ef110a..dae4504268 100644
--- a/src/xdisp.c
+++ b/src/xdisp.c
@@ -13960,7 +13960,7 @@ try_window_reusing_current_matrix (w)
nrows_scrolled);
/* Disable lines that must be updated. */
- for (i = 0; i < it.vpos; ++i)
+ for (i = 0; i < nrows_scrolled; ++i)
(start_row + i)->enabled_p = 0;
/* Re-compute Y positions. */
diff --git a/src/xmenu.c b/src/xmenu.c
index e2a67510de..0518832d21 100644
--- a/src/xmenu.c
+++ b/src/xmenu.c
@@ -3333,6 +3333,14 @@ xdialog_show (f, keymaps, title, header, error_name)
/* No selection has been chosen yet. */
menu_item_selection = 0;
+ /* Force a redisplay before showing the dialog. If a frame is created
+ just before showing the dialog, its contents may not have been fully
+ drawn, as this depends on timing of events from the X server. Redisplay
+ is not done when a dialog is shown. If redisplay could be done in the
+ X event loop (i.e. the X event loop does not run in a signal handler)
+ this would not be needed. */
+ Fredisplay (Qt);
+
/* Actually create and show the dialog. */
create_and_show_dialog (f, first_wv);