Mercurial > vim
annotate src/proto/gui_gtk_x11.pro @ 34146:23bb675796f0 v9.1.0034
patch 9.1.0034: Window scrolls unexpectedly when 'scrollbind' is set
Commit: https://github.com/vim/vim/commit/ac4cffc6d9d307778d8a2945adab70244470bbb8
Author: Christian Brabandt <cb@256bit.org>
Date: Tue Jan 16 17:22:38 2024 +0100
patch 9.1.0034: Window scrolls unexpectedly when 'scrollbind' is set
Problem: Window may unexpectedly scroll when 'scrollbind' is set
and setting a buffer-local option using setbufvar()
(Boris Staletic)
Solution: Save and restore the windows topline before opening the
popup window.
fixes: #13863
closes: #13869
Signed-off-by: Christian Brabandt <cb@256bit.org>
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Tue, 16 Jan 2024 17:30:10 +0100 |
parents | 19cdfe768104 |
children | fdc8a179c79e |
rev | line source |
---|---|
7 | 1 /* gui_gtk_x11.c */ |
7668
21b0a39d13ed
commit https://github.com/vim/vim/commit/ef26954a35207c3f17d6ed35d9a40c918d974892
Christian Brabandt <cb@256bit.org>
parents:
4209
diff
changeset
|
2 void gui_mch_prepare(int *argc, char **argv); |
21b0a39d13ed
commit https://github.com/vim/vim/commit/ef26954a35207c3f17d6ed35d9a40c918d974892
Christian Brabandt <cb@256bit.org>
parents:
4209
diff
changeset
|
3 void gui_mch_free_all(void); |
9213
bb86514cad15
commit https://github.com/vim/vim/commit/703a8044b5393d37d355b0b1054a9a5a13912a3f
Christian Brabandt <cb@256bit.org>
parents:
7668
diff
changeset
|
4 int gui_mch_is_blinking(void); |
9428
0c7f47088e55
commit https://github.com/vim/vim/commit/9d5d3c9c4468ad76f16b50eabd3d9e7eab2ed44d
Christian Brabandt <cb@256bit.org>
parents:
9213
diff
changeset
|
5 int gui_mch_is_blink_off(void); |
7668
21b0a39d13ed
commit https://github.com/vim/vim/commit/ef26954a35207c3f17d6ed35d9a40c918d974892
Christian Brabandt <cb@256bit.org>
parents:
4209
diff
changeset
|
6 void gui_mch_set_blinking(long waittime, long on, long off); |
13152
f4c3a7f410f4
patch 8.0.1450: GUI: endless loop when stopping cursor blinking
Christian Brabandt <cb@256bit.org>
parents:
12409
diff
changeset
|
7 void gui_mch_stop_blink(int may_call_gui_update_cursor); |
7668
21b0a39d13ed
commit https://github.com/vim/vim/commit/ef26954a35207c3f17d6ed35d9a40c918d974892
Christian Brabandt <cb@256bit.org>
parents:
4209
diff
changeset
|
8 void gui_mch_start_blink(void); |
9836
bc591685594a
commit https://github.com/vim/vim/commit/717e196060d946fe20bb0f0307f417dc4d0e9b17
Christian Brabandt <cb@256bit.org>
parents:
9428
diff
changeset
|
9 int gui_mch_early_init_check(int give_message); |
7668
21b0a39d13ed
commit https://github.com/vim/vim/commit/ef26954a35207c3f17d6ed35d9a40c918d974892
Christian Brabandt <cb@256bit.org>
parents:
4209
diff
changeset
|
10 int gui_mch_init_check(void); |
18078
5ae41d0ea397
patch 8.1.2034: dark them of GTK 3 not supported
Bram Moolenaar <Bram@vim.org>
parents:
17063
diff
changeset
|
11 void gui_mch_set_dark_theme(int dark); |
7668
21b0a39d13ed
commit https://github.com/vim/vim/commit/ef26954a35207c3f17d6ed35d9a40c918d974892
Christian Brabandt <cb@256bit.org>
parents:
4209
diff
changeset
|
12 void gui_mch_show_tabline(int showit); |
21b0a39d13ed
commit https://github.com/vim/vim/commit/ef26954a35207c3f17d6ed35d9a40c918d974892
Christian Brabandt <cb@256bit.org>
parents:
4209
diff
changeset
|
13 int gui_mch_showing_tabline(void); |
21b0a39d13ed
commit https://github.com/vim/vim/commit/ef26954a35207c3f17d6ed35d9a40c918d974892
Christian Brabandt <cb@256bit.org>
parents:
4209
diff
changeset
|
14 void gui_mch_update_tabline(void); |
21b0a39d13ed
commit https://github.com/vim/vim/commit/ef26954a35207c3f17d6ed35d9a40c918d974892
Christian Brabandt <cb@256bit.org>
parents:
4209
diff
changeset
|
15 void gui_mch_set_curtab(int nr); |
21b0a39d13ed
commit https://github.com/vim/vim/commit/ef26954a35207c3f17d6ed35d9a40c918d974892
Christian Brabandt <cb@256bit.org>
parents:
4209
diff
changeset
|
16 void gui_gtk_set_selection_targets(void); |
21b0a39d13ed
commit https://github.com/vim/vim/commit/ef26954a35207c3f17d6ed35d9a40c918d974892
Christian Brabandt <cb@256bit.org>
parents:
4209
diff
changeset
|
17 void gui_gtk_set_dnd_targets(void); |
21b0a39d13ed
commit https://github.com/vim/vim/commit/ef26954a35207c3f17d6ed35d9a40c918d974892
Christian Brabandt <cb@256bit.org>
parents:
4209
diff
changeset
|
18 int gui_mch_init(void); |
21b0a39d13ed
commit https://github.com/vim/vim/commit/ef26954a35207c3f17d6ed35d9a40c918d974892
Christian Brabandt <cb@256bit.org>
parents:
4209
diff
changeset
|
19 void gui_mch_forked(void); |
21b0a39d13ed
commit https://github.com/vim/vim/commit/ef26954a35207c3f17d6ed35d9a40c918d974892
Christian Brabandt <cb@256bit.org>
parents:
4209
diff
changeset
|
20 void gui_mch_new_colors(void); |
24162
cb8b9bf76082
patch 8.2.2622: GTK: error when starting up and -geometry is given
Bram Moolenaar <Bram@vim.org>
parents:
18078
diff
changeset
|
21 void gui_gtk_get_screen_geom_of_win(GtkWidget *wid, int point_x, int point_y, int *screen_x, int *screen_y, int *width, int *height); |
cb8b9bf76082
patch 8.2.2622: GTK: error when starting up and -geometry is given
Bram Moolenaar <Bram@vim.org>
parents:
18078
diff
changeset
|
22 void gui_mch_get_screen_dimensions(int *screen_w, int *screen_h); |
7668
21b0a39d13ed
commit https://github.com/vim/vim/commit/ef26954a35207c3f17d6ed35d9a40c918d974892
Christian Brabandt <cb@256bit.org>
parents:
4209
diff
changeset
|
23 int gui_mch_open(void); |
21b0a39d13ed
commit https://github.com/vim/vim/commit/ef26954a35207c3f17d6ed35d9a40c918d974892
Christian Brabandt <cb@256bit.org>
parents:
4209
diff
changeset
|
24 void gui_mch_exit(int rc); |
21b0a39d13ed
commit https://github.com/vim/vim/commit/ef26954a35207c3f17d6ed35d9a40c918d974892
Christian Brabandt <cb@256bit.org>
parents:
4209
diff
changeset
|
25 int gui_mch_get_winpos(int *x, int *y); |
21b0a39d13ed
commit https://github.com/vim/vim/commit/ef26954a35207c3f17d6ed35d9a40c918d974892
Christian Brabandt <cb@256bit.org>
parents:
4209
diff
changeset
|
26 void gui_mch_set_winpos(int x, int y); |
21b0a39d13ed
commit https://github.com/vim/vim/commit/ef26954a35207c3f17d6ed35d9a40c918d974892
Christian Brabandt <cb@256bit.org>
parents:
4209
diff
changeset
|
27 int gui_mch_maximized(void); |
21b0a39d13ed
commit https://github.com/vim/vim/commit/ef26954a35207c3f17d6ed35d9a40c918d974892
Christian Brabandt <cb@256bit.org>
parents:
4209
diff
changeset
|
28 void gui_mch_unmaximize(void); |
21b0a39d13ed
commit https://github.com/vim/vim/commit/ef26954a35207c3f17d6ed35d9a40c918d974892
Christian Brabandt <cb@256bit.org>
parents:
4209
diff
changeset
|
29 void gui_mch_newfont(void); |
21b0a39d13ed
commit https://github.com/vim/vim/commit/ef26954a35207c3f17d6ed35d9a40c918d974892
Christian Brabandt <cb@256bit.org>
parents:
4209
diff
changeset
|
30 void gui_mch_set_shellsize(int width, int height, int min_width, int min_height, int base_width, int base_height, int direction); |
21b0a39d13ed
commit https://github.com/vim/vim/commit/ef26954a35207c3f17d6ed35d9a40c918d974892
Christian Brabandt <cb@256bit.org>
parents:
4209
diff
changeset
|
31 void gui_mch_settitle(char_u *title, char_u *icon); |
21b0a39d13ed
commit https://github.com/vim/vim/commit/ef26954a35207c3f17d6ed35d9a40c918d974892
Christian Brabandt <cb@256bit.org>
parents:
4209
diff
changeset
|
32 void gui_mch_enable_menu(int showit); |
21b0a39d13ed
commit https://github.com/vim/vim/commit/ef26954a35207c3f17d6ed35d9a40c918d974892
Christian Brabandt <cb@256bit.org>
parents:
4209
diff
changeset
|
33 void gui_mch_show_toolbar(int showit); |
21b0a39d13ed
commit https://github.com/vim/vim/commit/ef26954a35207c3f17d6ed35d9a40c918d974892
Christian Brabandt <cb@256bit.org>
parents:
4209
diff
changeset
|
34 int gui_mch_adjust_charheight(void); |
21b0a39d13ed
commit https://github.com/vim/vim/commit/ef26954a35207c3f17d6ed35d9a40c918d974892
Christian Brabandt <cb@256bit.org>
parents:
4209
diff
changeset
|
35 char_u *gui_mch_font_dialog(char_u *oldval); |
21b0a39d13ed
commit https://github.com/vim/vim/commit/ef26954a35207c3f17d6ed35d9a40c918d974892
Christian Brabandt <cb@256bit.org>
parents:
4209
diff
changeset
|
36 int gui_mch_init_font(char_u *font_name, int fontset); |
21b0a39d13ed
commit https://github.com/vim/vim/commit/ef26954a35207c3f17d6ed35d9a40c918d974892
Christian Brabandt <cb@256bit.org>
parents:
4209
diff
changeset
|
37 GuiFont gui_mch_get_font(char_u *name, int report_error); |
21b0a39d13ed
commit https://github.com/vim/vim/commit/ef26954a35207c3f17d6ed35d9a40c918d974892
Christian Brabandt <cb@256bit.org>
parents:
4209
diff
changeset
|
38 char_u *gui_mch_get_fontname(GuiFont font, char_u *name); |
21b0a39d13ed
commit https://github.com/vim/vim/commit/ef26954a35207c3f17d6ed35d9a40c918d974892
Christian Brabandt <cb@256bit.org>
parents:
4209
diff
changeset
|
39 void gui_mch_free_font(GuiFont font); |
34053
19cdfe768104
patch 9.0.2190: proto files need update
Christian Brabandt <cb@256bit.org>
parents:
33480
diff
changeset
|
40 void gui_mch_expand_font(optexpand_T *args, void *param, int (*add_match)(char_u *val)); |
7668
21b0a39d13ed
commit https://github.com/vim/vim/commit/ef26954a35207c3f17d6ed35d9a40c918d974892
Christian Brabandt <cb@256bit.org>
parents:
4209
diff
changeset
|
41 guicolor_T gui_mch_get_color(char_u *name); |
11745
5a5709918a98
patch 8.0.0755: terminal window does not have colors in the GUI
Christian Brabandt <cb@256bit.org>
parents:
9939
diff
changeset
|
42 guicolor_T gui_mch_get_rgb_color(int r, int g, int b); |
7668
21b0a39d13ed
commit https://github.com/vim/vim/commit/ef26954a35207c3f17d6ed35d9a40c918d974892
Christian Brabandt <cb@256bit.org>
parents:
4209
diff
changeset
|
43 void gui_mch_set_fg_color(guicolor_T color); |
21b0a39d13ed
commit https://github.com/vim/vim/commit/ef26954a35207c3f17d6ed35d9a40c918d974892
Christian Brabandt <cb@256bit.org>
parents:
4209
diff
changeset
|
44 void gui_mch_set_bg_color(guicolor_T color); |
21b0a39d13ed
commit https://github.com/vim/vim/commit/ef26954a35207c3f17d6ed35d9a40c918d974892
Christian Brabandt <cb@256bit.org>
parents:
4209
diff
changeset
|
45 void gui_mch_set_sp_color(guicolor_T color); |
21b0a39d13ed
commit https://github.com/vim/vim/commit/ef26954a35207c3f17d6ed35d9a40c918d974892
Christian Brabandt <cb@256bit.org>
parents:
4209
diff
changeset
|
46 int gui_gtk2_draw_string(int row, int col, char_u *s, int len, int flags); |
25982
aade8ef975d5
patch 8.2.3524: GUI: ligatures are not used
Bram Moolenaar <Bram@vim.org>
parents:
24162
diff
changeset
|
47 int gui_gtk2_draw_string_ext(int row, int col, char_u *s, int len, int flags, int force_pango); |
7668
21b0a39d13ed
commit https://github.com/vim/vim/commit/ef26954a35207c3f17d6ed35d9a40c918d974892
Christian Brabandt <cb@256bit.org>
parents:
4209
diff
changeset
|
48 int gui_mch_haskey(char_u *name); |
21b0a39d13ed
commit https://github.com/vim/vim/commit/ef26954a35207c3f17d6ed35d9a40c918d974892
Christian Brabandt <cb@256bit.org>
parents:
4209
diff
changeset
|
49 int gui_get_x11_windis(Window *win, Display **dis); |
21b0a39d13ed
commit https://github.com/vim/vim/commit/ef26954a35207c3f17d6ed35d9a40c918d974892
Christian Brabandt <cb@256bit.org>
parents:
4209
diff
changeset
|
50 Display *gui_mch_get_display(void); |
21b0a39d13ed
commit https://github.com/vim/vim/commit/ef26954a35207c3f17d6ed35d9a40c918d974892
Christian Brabandt <cb@256bit.org>
parents:
4209
diff
changeset
|
51 void gui_mch_beep(void); |
21b0a39d13ed
commit https://github.com/vim/vim/commit/ef26954a35207c3f17d6ed35d9a40c918d974892
Christian Brabandt <cb@256bit.org>
parents:
4209
diff
changeset
|
52 void gui_mch_flash(int msec); |
21b0a39d13ed
commit https://github.com/vim/vim/commit/ef26954a35207c3f17d6ed35d9a40c918d974892
Christian Brabandt <cb@256bit.org>
parents:
4209
diff
changeset
|
53 void gui_mch_invert_rectangle(int r, int c, int nr, int nc); |
21b0a39d13ed
commit https://github.com/vim/vim/commit/ef26954a35207c3f17d6ed35d9a40c918d974892
Christian Brabandt <cb@256bit.org>
parents:
4209
diff
changeset
|
54 void gui_mch_iconify(void); |
21b0a39d13ed
commit https://github.com/vim/vim/commit/ef26954a35207c3f17d6ed35d9a40c918d974892
Christian Brabandt <cb@256bit.org>
parents:
4209
diff
changeset
|
55 void gui_mch_set_foreground(void); |
21b0a39d13ed
commit https://github.com/vim/vim/commit/ef26954a35207c3f17d6ed35d9a40c918d974892
Christian Brabandt <cb@256bit.org>
parents:
4209
diff
changeset
|
56 void gui_mch_draw_hollow_cursor(guicolor_T color); |
21b0a39d13ed
commit https://github.com/vim/vim/commit/ef26954a35207c3f17d6ed35d9a40c918d974892
Christian Brabandt <cb@256bit.org>
parents:
4209
diff
changeset
|
57 void gui_mch_draw_part_cursor(int w, int h, guicolor_T color); |
21b0a39d13ed
commit https://github.com/vim/vim/commit/ef26954a35207c3f17d6ed35d9a40c918d974892
Christian Brabandt <cb@256bit.org>
parents:
4209
diff
changeset
|
58 void gui_mch_update(void); |
21b0a39d13ed
commit https://github.com/vim/vim/commit/ef26954a35207c3f17d6ed35d9a40c918d974892
Christian Brabandt <cb@256bit.org>
parents:
4209
diff
changeset
|
59 int gui_mch_wait_for_chars(long wtime); |
21b0a39d13ed
commit https://github.com/vim/vim/commit/ef26954a35207c3f17d6ed35d9a40c918d974892
Christian Brabandt <cb@256bit.org>
parents:
4209
diff
changeset
|
60 void gui_mch_flush(void); |
11745
5a5709918a98
patch 8.0.0755: terminal window does not have colors in the GUI
Christian Brabandt <cb@256bit.org>
parents:
9939
diff
changeset
|
61 void gui_mch_clear_block(int row1arg, int col1arg, int row2arg, int col2arg); |
7668
21b0a39d13ed
commit https://github.com/vim/vim/commit/ef26954a35207c3f17d6ed35d9a40c918d974892
Christian Brabandt <cb@256bit.org>
parents:
4209
diff
changeset
|
62 void gui_mch_clear_all(void); |
21b0a39d13ed
commit https://github.com/vim/vim/commit/ef26954a35207c3f17d6ed35d9a40c918d974892
Christian Brabandt <cb@256bit.org>
parents:
4209
diff
changeset
|
63 void gui_mch_delete_lines(int row, int num_lines); |
21b0a39d13ed
commit https://github.com/vim/vim/commit/ef26954a35207c3f17d6ed35d9a40c918d974892
Christian Brabandt <cb@256bit.org>
parents:
4209
diff
changeset
|
64 void gui_mch_insert_lines(int row, int num_lines); |
17063
3147c7c2e86b
patch 8.1.1531: clipboard type name is inconsistent
Bram Moolenaar <Bram@vim.org>
parents:
14575
diff
changeset
|
65 void clip_mch_request_selection(Clipboard_T *cbd); |
3147c7c2e86b
patch 8.1.1531: clipboard type name is inconsistent
Bram Moolenaar <Bram@vim.org>
parents:
14575
diff
changeset
|
66 void clip_mch_lose_selection(Clipboard_T *cbd); |
3147c7c2e86b
patch 8.1.1531: clipboard type name is inconsistent
Bram Moolenaar <Bram@vim.org>
parents:
14575
diff
changeset
|
67 int clip_mch_own_selection(Clipboard_T *cbd); |
3147c7c2e86b
patch 8.1.1531: clipboard type name is inconsistent
Bram Moolenaar <Bram@vim.org>
parents:
14575
diff
changeset
|
68 void clip_mch_set_selection(Clipboard_T *cbd); |
3147c7c2e86b
patch 8.1.1531: clipboard type name is inconsistent
Bram Moolenaar <Bram@vim.org>
parents:
14575
diff
changeset
|
69 int clip_gtk_owner_exists(Clipboard_T *cbd); |
7668
21b0a39d13ed
commit https://github.com/vim/vim/commit/ef26954a35207c3f17d6ed35d9a40c918d974892
Christian Brabandt <cb@256bit.org>
parents:
4209
diff
changeset
|
70 void gui_mch_menu_grey(vimmenu_T *menu, int grey); |
21b0a39d13ed
commit https://github.com/vim/vim/commit/ef26954a35207c3f17d6ed35d9a40c918d974892
Christian Brabandt <cb@256bit.org>
parents:
4209
diff
changeset
|
71 void gui_mch_menu_hidden(vimmenu_T *menu, int hidden); |
21b0a39d13ed
commit https://github.com/vim/vim/commit/ef26954a35207c3f17d6ed35d9a40c918d974892
Christian Brabandt <cb@256bit.org>
parents:
4209
diff
changeset
|
72 void gui_mch_draw_menubar(void); |
21b0a39d13ed
commit https://github.com/vim/vim/commit/ef26954a35207c3f17d6ed35d9a40c918d974892
Christian Brabandt <cb@256bit.org>
parents:
4209
diff
changeset
|
73 void gui_mch_enable_scrollbar(scrollbar_T *sb, int flag); |
9939
ccb6461b82df
commit https://github.com/vim/vim/commit/1b58cdd160c2e0ada0f638679a2aa27e4665fc48
Christian Brabandt <cb@256bit.org>
parents:
9836
diff
changeset
|
74 guicolor_T gui_mch_get_rgb(guicolor_T pixel); |
7668
21b0a39d13ed
commit https://github.com/vim/vim/commit/ef26954a35207c3f17d6ed35d9a40c918d974892
Christian Brabandt <cb@256bit.org>
parents:
4209
diff
changeset
|
75 void gui_mch_getmouse(int *x, int *y); |
21b0a39d13ed
commit https://github.com/vim/vim/commit/ef26954a35207c3f17d6ed35d9a40c918d974892
Christian Brabandt <cb@256bit.org>
parents:
4209
diff
changeset
|
76 void gui_mch_setmouse(int x, int y); |
21b0a39d13ed
commit https://github.com/vim/vim/commit/ef26954a35207c3f17d6ed35d9a40c918d974892
Christian Brabandt <cb@256bit.org>
parents:
4209
diff
changeset
|
77 void gui_mch_mousehide(int hide); |
21b0a39d13ed
commit https://github.com/vim/vim/commit/ef26954a35207c3f17d6ed35d9a40c918d974892
Christian Brabandt <cb@256bit.org>
parents:
4209
diff
changeset
|
78 void mch_set_mouse_shape(int shape); |
21b0a39d13ed
commit https://github.com/vim/vim/commit/ef26954a35207c3f17d6ed35d9a40c918d974892
Christian Brabandt <cb@256bit.org>
parents:
4209
diff
changeset
|
79 void gui_mch_drawsign(int row, int col, int typenr); |
21b0a39d13ed
commit https://github.com/vim/vim/commit/ef26954a35207c3f17d6ed35d9a40c918d974892
Christian Brabandt <cb@256bit.org>
parents:
4209
diff
changeset
|
80 void *gui_mch_register_sign(char_u *signfile); |
21b0a39d13ed
commit https://github.com/vim/vim/commit/ef26954a35207c3f17d6ed35d9a40c918d974892
Christian Brabandt <cb@256bit.org>
parents:
4209
diff
changeset
|
81 void gui_mch_destroy_sign(void *sign); |
7 | 82 /* vim: set ft=c : */ |