Mercurial > vim
annotate src/gui_gtk_f.h @ 34485:157cf882799f v9.1.0150
patch 9.1.0150: Several minor 'winfixbuf' issues
Commit: https://github.com/vim/vim/commit/4bb505e28cac0389561fff78d8bbe0319c2bcf2f
Author: Sean Dewar <6256228+seandewar@users.noreply.github.com>
Date: Tue Mar 5 20:39:07 2024 +0100
patch 9.1.0150: Several minor 'winfixbuf' issues
Problem: several minor 'winfixbuf' issues exist, mostly relating to the
quickfix list
Solution: address them and adjust tests. Retab and reflow a few things too.
(Sean Dewar)
Things touched include:
- Replace the semsgs with gettext'd emsgs.
- Handle window switching in ex_listdo properly, so curbuf and curwin
are kept in-sync and trigger autocommands; handle those properly.
- Don't change the list entry index in qf_jump_edit_buffer if we fail
due to 'wfb' (achieved by returning FAIL; QF_ABORT should only be used
if the list was changed).
- Make qf_jump_edit_buffer actually switch to prevwin when using `:cXX`
commands **outside** of the list window if 'wfb' is set in curwin.
Handle autocommands properly in case they mess with the list.
NOTE: previously, it seemed to split if 'wfb' was set, but do nothing
and fail if prevwin is *valid*. This behaviour seemed strange, and maybe
unintentional? Now it aligns more with what's described for the `:cXX`
commands in the original PR description when used outside a list window,
I think.
- In both functions, only consider prevwin if 'wfb' isn't set for it;
fallback to splitting otherwise.
- Use win_split to split. Not sure if there was a specific reason for
using ex_splitview. win_split is simpler and respects modifiers like
:vertical that may have been used. Plus, its return value can be checked
for setting opened_window in qf code (technically win_split_ins autocmds
could immediately close it or change windows, in which the qf code might
close some other window on failure; it's already the case elsewhere,
though).
closes: #14142
Signed-off-by: Sean Dewar <6256228+seandewar@users.noreply.github.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
author | Christian Brabandt <cb@256bit.org> |
---|---|
date | Tue, 05 Mar 2024 20:45:04 +0100 |
parents | 8623ab39b421 |
children |
rev | line source |
---|---|
10042
4aead6a9b7a9
commit https://github.com/vim/vim/commit/edf3f97ae2af024708ebb4ac614227327033ca47
Christian Brabandt <cb@256bit.org>
parents:
8218
diff
changeset
|
1 /* vi:set ts=8 sts=4 sw=4 noet: |
7 | 2 * |
3 * VIM - Vi IMproved by Bram Moolenaar | |
4 * | |
5 * Do ":help uganda" in Vim to read copying and usage conditions. | |
6 * Do ":help credits" in Vim to see a list of people who contributed. | |
7 */ | |
8 | |
9 #ifndef __GTK_FORM_H__ | |
10 #define __GTK_FORM_H__ | |
11 | |
8218
3456e2ebebd4
commit https://github.com/vim/vim/commit/9892189d2e7ab94b750f99e6da4cbfc3c8014517
Christian Brabandt <cb@256bit.org>
parents:
2275
diff
changeset
|
12 #ifdef USE_GTK3 |
3456e2ebebd4
commit https://github.com/vim/vim/commit/9892189d2e7ab94b750f99e6da4cbfc3c8014517
Christian Brabandt <cb@256bit.org>
parents:
2275
diff
changeset
|
13 #include <gtk/gtk.h> |
3456e2ebebd4
commit https://github.com/vim/vim/commit/9892189d2e7ab94b750f99e6da4cbfc3c8014517
Christian Brabandt <cb@256bit.org>
parents:
2275
diff
changeset
|
14 #else |
7 | 15 #include <gdk/gdk.h> |
16 #include <gtk/gtkcontainer.h> | |
8218
3456e2ebebd4
commit https://github.com/vim/vim/commit/9892189d2e7ab94b750f99e6da4cbfc3c8014517
Christian Brabandt <cb@256bit.org>
parents:
2275
diff
changeset
|
17 #endif |
7 | 18 |
19 | |
20 #ifdef __cplusplus | |
21 extern "C" { | |
22 #endif | |
23 | |
22659
8623ab39b421
patch 8.2.1878: GTK: error for redefining function
Bram Moolenaar <Bram@vim.org>
parents:
18753
diff
changeset
|
24 #define GTK_TYPE_FORM (gui_gtk_form_get_type ()) |
8218
3456e2ebebd4
commit https://github.com/vim/vim/commit/9892189d2e7ab94b750f99e6da4cbfc3c8014517
Christian Brabandt <cb@256bit.org>
parents:
2275
diff
changeset
|
25 #ifdef USE_GTK3 |
3456e2ebebd4
commit https://github.com/vim/vim/commit/9892189d2e7ab94b750f99e6da4cbfc3c8014517
Christian Brabandt <cb@256bit.org>
parents:
2275
diff
changeset
|
26 #define GTK_FORM(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj), GTK_TYPE_FORM, GtkForm)) |
3456e2ebebd4
commit https://github.com/vim/vim/commit/9892189d2e7ab94b750f99e6da4cbfc3c8014517
Christian Brabandt <cb@256bit.org>
parents:
2275
diff
changeset
|
27 #define GTK_FORM_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass), GTK_TYPE_FORM, GtkFormClass)) |
3456e2ebebd4
commit https://github.com/vim/vim/commit/9892189d2e7ab94b750f99e6da4cbfc3c8014517
Christian Brabandt <cb@256bit.org>
parents:
2275
diff
changeset
|
28 #define GTK_IS_FORM(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj), GTK_TYPE_FORM)) |
3456e2ebebd4
commit https://github.com/vim/vim/commit/9892189d2e7ab94b750f99e6da4cbfc3c8014517
Christian Brabandt <cb@256bit.org>
parents:
2275
diff
changeset
|
29 #define GTK_IS_FORM_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass), GTK_TYPE_FORM)) |
3456e2ebebd4
commit https://github.com/vim/vim/commit/9892189d2e7ab94b750f99e6da4cbfc3c8014517
Christian Brabandt <cb@256bit.org>
parents:
2275
diff
changeset
|
30 #else |
7 | 31 #define GTK_FORM(obj) (GTK_CHECK_CAST ((obj), GTK_TYPE_FORM, GtkForm)) |
32 #define GTK_FORM_CLASS(klass) (GTK_CHECK_CLASS_CAST ((klass), GTK_TYPE_FORM, GtkFormClass)) | |
33 #define GTK_IS_FORM(obj) (GTK_CHECK_TYPE ((obj), GTK_TYPE_FORM)) | |
34 #define GTK_IS_FORM_CLASS(klass) (GTK_CHECK_CLASS_TYPE ((klass), GTK_TYPE_FORM)) | |
8218
3456e2ebebd4
commit https://github.com/vim/vim/commit/9892189d2e7ab94b750f99e6da4cbfc3c8014517
Christian Brabandt <cb@256bit.org>
parents:
2275
diff
changeset
|
35 #endif |
7 | 36 |
37 | |
38 typedef struct _GtkForm GtkForm; | |
39 typedef struct _GtkFormClass GtkFormClass; | |
40 | |
41 struct _GtkForm | |
42 { | |
43 GtkContainer container; | |
44 | |
45 GList *children; | |
46 GdkWindow *bin_window; | |
47 gint freeze_count; | |
48 }; | |
49 | |
50 struct _GtkFormClass | |
51 { | |
52 GtkContainerClass parent_class; | |
53 }; | |
54 | |
8218
3456e2ebebd4
commit https://github.com/vim/vim/commit/9892189d2e7ab94b750f99e6da4cbfc3c8014517
Christian Brabandt <cb@256bit.org>
parents:
2275
diff
changeset
|
55 #ifdef USE_GTK3 |
22659
8623ab39b421
patch 8.2.1878: GTK: error for redefining function
Bram Moolenaar <Bram@vim.org>
parents:
18753
diff
changeset
|
56 GType gui_gtk_form_get_type(void); |
8218
3456e2ebebd4
commit https://github.com/vim/vim/commit/9892189d2e7ab94b750f99e6da4cbfc3c8014517
Christian Brabandt <cb@256bit.org>
parents:
2275
diff
changeset
|
57 #else |
22659
8623ab39b421
patch 8.2.1878: GTK: error for redefining function
Bram Moolenaar <Bram@vim.org>
parents:
18753
diff
changeset
|
58 GtkType gui_gtk_form_get_type(void); |
8218
3456e2ebebd4
commit https://github.com/vim/vim/commit/9892189d2e7ab94b750f99e6da4cbfc3c8014517
Christian Brabandt <cb@256bit.org>
parents:
2275
diff
changeset
|
59 #endif |
7 | 60 |
22659
8623ab39b421
patch 8.2.1878: GTK: error for redefining function
Bram Moolenaar <Bram@vim.org>
parents:
18753
diff
changeset
|
61 GtkWidget *gui_gtk_form_new(void); |
7 | 62 |
22659
8623ab39b421
patch 8.2.1878: GTK: error for redefining function
Bram Moolenaar <Bram@vim.org>
parents:
18753
diff
changeset
|
63 void gui_gtk_form_put(GtkForm * form, GtkWidget * widget, gint x, gint y); |
7 | 64 |
22659
8623ab39b421
patch 8.2.1878: GTK: error for redefining function
Bram Moolenaar <Bram@vim.org>
parents:
18753
diff
changeset
|
65 void gui_gtk_form_move(GtkForm *form, GtkWidget * widget, gint x, gint y); |
7 | 66 |
22659
8623ab39b421
patch 8.2.1878: GTK: error for redefining function
Bram Moolenaar <Bram@vim.org>
parents:
18753
diff
changeset
|
67 void gui_gtk_form_move_resize(GtkForm * form, GtkWidget * widget, gint x, gint y, gint w, gint h); |
7 | 68 |
18753
6e3dc2d630c2
patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
11271
diff
changeset
|
69 // These disable and enable moving and repainting respectively. If you |
6e3dc2d630c2
patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
11271
diff
changeset
|
70 // want to update the layout's offsets but do not want it to repaint |
6e3dc2d630c2
patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
11271
diff
changeset
|
71 // itself, you should use these functions. |
7 | 72 |
22659
8623ab39b421
patch 8.2.1878: GTK: error for redefining function
Bram Moolenaar <Bram@vim.org>
parents:
18753
diff
changeset
|
73 void gui_gtk_form_freeze(GtkForm *form); |
8623ab39b421
patch 8.2.1878: GTK: error for redefining function
Bram Moolenaar <Bram@vim.org>
parents:
18753
diff
changeset
|
74 void gui_gtk_form_thaw(GtkForm *form); |
7 | 75 |
76 | |
77 #ifdef __cplusplus | |
78 } | |
79 #endif | |
18753
6e3dc2d630c2
patch 8.1.2366: using old C style comments
Bram Moolenaar <Bram@vim.org>
parents:
11271
diff
changeset
|
80 #endif // __GTK_FORM_H__ |