(xg_file_sel_destroy): Removed.
(xg_file_response_cb, pop_down_file_dialog,
xg_get_file_name_from_chooser, xg_get_file_name_from_selector):
New functions.
(xg_get_file_with_chooser, xg_get_file_with_selection): Take
new argument func, set it to xg_get_file_name_from_chooser/selector.
Move common code to xg_get_file_name. Return widget created.
(xg_get_file_name): Set name, transient for, modal and destroy
with parent here. Connect response signal to xg_file_response_cb,
connect delete-event to gtk_true. Record pop_down_file_dialog
for unwind. Do event loop and call x_menu_wait_for_event in loop.
(xg_create_widget): Make dialogs modal.
** Clicking on partially visible lines fails
From: David Kastrup <dak@gnu.org>
Date: 27 Apr 2004 16:42:58 +0200
I had gnus display a mouse-highlighted line (a URL from browse-url)
partially at the bottom of its window. If I click with middle mouse
key on it, the window gets recentered while I hold the mouse key
pressed. If I release it, the window returns into its old position
(cursor in top row) and nothing happens, presumably because the click
was not registered on the line itself, but on the magically
recentered version.
That is a nuisance. Recentering of even partially visible click
targets should only happen if window-point moves there, but not at
the time of the click. From the moment I hold down a key until it
gets released, the displayed window portion should not change, with
the sole exception of scrolling when dragging at the edge of the
screen.
(progn
(setq line-spacing 4)
(dotimes (i (window-height))
(insert "\n" (int-to-string i)))
(forward-line -2)
(recenter -1))
** Can't drag modeline when mouse-autoselect-window is set
From: Klaus Zeitler <kzeitler@lucent.com>
Date: Mon, 11 Oct 2004 11:14:49 +0200
1. start emacs -q --no-site-file
2. set variable mouse-autoselect-window to t
3. split-window-vertically
now I can drag the modeline only upwards but not downwards
(mouse-drag-mode-line-1): Let bind mouse-autoselect-window to nil
while dragging mode line, so mode line can be dragged downwards.
(mouse-drag-region-1): Let bind make-cursor-line-fully-visible
while pressing mouse button so window doesn't scroll until we
release the mouse if clicking on partially visible line.
** line-spacing and (recenter -1)
From: SAITO Takuya <tabmore@rivo.mediatti.net>
Date: Mon, 31 May 2004 02:07:57 +0900 (JST)
(recenter -1) does not show point at the bottom of the window
if line-spacing is set to positive integer.
Start emacs -Q, and evaluate below:
(progn
(setq line-spacing 1)
(dotimes (i (window-height))
(insert "\n" (int-to-string i)))
(recenter -1))
Then, point is displayed at the center of the window.
But point should be displayed at the bottom of the window like Emacs-21.3.
move_it_vertically_backward directly.
(Frecenter): Fix calculation of new start pos for negative arg.
Before, the new start pos was sometimes chosen too far back, so
the last line became only partially visible, and thus would be
either only semi-visible or automatically scrolled to the middle
of the window by redisplay.
(struct it): New member max_extra_line_spacing.
(MR_PARTIALLY_VISIBLE, MR_PARTIALLY_VISIBLE_AT_TOP)
(MR_PARTIALLY_VISIBLE_AT_BOTTOM): New helper macros.
(MATRIX_ROW_PARTIALLY_VISIBLE_P): Fix to return false if invisible
part of last line is only extra line spacing (so the text on the
line is fully visible). Use helper macros.
Add W arg (to use them). All callers changed.
(MATRIX_ROW_PARTIALLY_VISIBLE_AT_TOP_P)
(MATRIX_ROW_PARTIALLY_VISIBLE_AT_BOTTOM_P): Use helper macros.
(create_and_show_popup_menu, create_and_show_dialog): Pass 1 for
do_timers to popup_widget_loop.
(create_and_show_popup_menu): Pass 1 for do_timers to
popup_get_selection.
(popup_get_selection, popup_widget_loop): Call x_menu_wait_for_event
to handle timers.
(xmenu_show): Call XMenuActivateSetWaitFunction so that
x_menu_wait_for_event is called by XMenuActivate.