diff options
author | Miles Bader <[email protected]> | 2007-05-01 23:03:36 +0000 |
---|---|---|
committer | Miles Bader <[email protected]> | 2007-05-01 23:03:36 +0000 |
commit | 212c766631c7de92e9dde63d842c5e16338dbaf0 (patch) | |
tree | 79ba5b940ed2b366b3f19d35c52fe4ecd5742d78 /src | |
parent | 59c92ade0ab7972baabbe04866922575c98a0f48 (diff) | |
parent | 6c60609353d509d8c4e0bb2cb5bd3119ca7f153c (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/ChangeLog | 29 | ||||
-rw-r--r-- | src/gtkutil.c | 10 | ||||
-rw-r--r-- | src/insdel.c | 6 | ||||
-rw-r--r-- | src/lisp.h | 6 | ||||
-rw-r--r-- | src/lread.c | 2 | ||||
-rw-r--r-- | src/macmenu.c | 10 | ||||
-rw-r--r-- | src/xdisp.c | 2 | ||||
-rw-r--r-- | src/xmenu.c | 8 |
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); |