Benjamin Otte
4b5fb5ec79
treelistmodel: Refactor to add GtkTreeListRow
...
This patch does multiple things:
1. Add a custom persistent per-row object.
2. Move all per-row API to that object. This means notifications are now
possible.
3. Add a "passthrough" construct-only property to the TreeListModel that
influences if the model returns these new object or passes through
the ones from the model.
This greatly simplifies the code needed to be written for widgetry,
because one can just connect the per-row object to the expanders that
expand and collapse rows.
As an added power feature, these objects can also be passed through
further models (like filter models).
It also adds kind of a hack to Adwaita to make the test look neat.
2018-09-16 18:50:17 +02:00
Benjamin Otte
573c63973a
gtk: Add GtkTreeListModel
...
This is a GListModel implementation with a neat API that can be used to
implement trees inside GtkListBox.
2018-09-16 18:50:17 +02:00
Timm Bäder
0082675de8
testoverlaystyleclass: Fix CSS snippet
2018-08-27 18:13:01 +02:00
Timm Bäder
ed8e784879
remove tests/testinput
...
It's broken and almost the exact same thing as the drawing demo in
gtk4-demo.
2018-08-27 17:56:02 +02:00
Benjamin Otte
50d5666db0
container: Remove focus chains
...
They're prectically unused.
Widgets who want to influcence the focus chain behavior should implement
GtkWidgetClass::focus and deal with focus there.
2018-07-31 22:34:27 +02:00
Carlos Garnacho
5d1b2f627c
tests: Port testwidgetfocus to using a motion controller
2018-07-30 13:14:12 +02:00
Carlos Garnacho
25b3b90920
tests: Port motion-compression to using a motion controller
2018-07-30 13:14:12 +02:00
Carlos Garnacho
5e0f2d7d20
tests: Use gesture in testtreepos
2018-07-30 13:14:12 +02:00
Carlos Garnacho
88743ab975
tests: Use gesture to popup menu in testiconview
2018-07-30 13:14:12 +02:00
Carlos Garnacho
6f15447633
tests: Update testgrid to use gestures
2018-07-30 13:14:12 +02:00
Jonas Ådahl
af21583d4d
tests: Stop using legacy gtk_menu_popup API
...
Use the new portable APIs, so that menus will be positioned properly on
all backends.
2018-07-27 17:16:44 +02:00
Ernestas Kulik
1fbbaef49e
testpopover: Don’t set margin in menu box
...
The gizmo already provides sufficient padding.
2018-07-23 13:05:57 +03:00
Matthias Clasen
7a1073c3ae
Revert "gdk: Drop configure events"
...
This reverts commit a8926c9d87
.
2018-07-15 20:23:45 -04:00
Matthias Clasen
a8926c9d87
gdk: Drop configure events
...
Replace configure events with a GdkSurface::size-changed signal.
This is part of the move to use events only for input.
2018-07-15 11:51:09 -04:00
Benjamin Otte
cbb1e74bb5
textview: Only create cairo context in gtktextdisplay.c
...
Everything else is done using GtkSnapshot now, including renaming the
draw_layer vfunc to snapshot_layer.
2018-07-14 05:27:54 +02:00
Matthias Clasen
7733f646d6
gdk: Rename GdkDragContext to GdkDrag
...
This is to go along with the newly introduced GdkDrop.
This commit includes the necessary updates to the X11, Wayland
and Broadway backends. Other backends have to be updated separately.
2018-07-02 14:59:26 +02:00
Carlos Garnacho
e08e15ba51
gtkentry: Use gestures for entry icons
...
Instead of doing all handling manually in the ::event vfunc,
set up drag/multipress gestures on icon images, and implement
emission of ::icon-press/release and DnD there.
As a side effect, the GdkEvent field in ::icon-press/release
signals has been dropped. Callers that might be interested on it
may still use gtk_get_current_event*().
2018-06-21 12:50:57 +02:00
Benjamin Otte
9a91d3739d
widget: Remove time argument from drag_data_get() vfunc
2018-06-18 23:49:53 +02:00
Benjamin Otte
b00609c21c
dnd: Make drag-motion and drag-drop signals use GdkDrop
2018-06-18 23:49:52 +02:00
Benjamin Otte
6d7cb2b781
dnd: Make drag-data-received use a GdkDrop
2018-06-18 23:49:52 +02:00
Benjamin Otte
314eaf7d10
widget: Make GtkWidgetClass::drag_leave() take a GdkDrop
...
Drag Contexts are on their way out!
2018-06-18 23:49:20 +02:00
Benjamin Otte
5b0a6a52c1
dnd: Get rid of gtk_drag_finish()
...
It's just a wrapper around gdk_drag_finish(), so use that one instead.
2018-06-18 23:49:20 +02:00
Benjamin Otte
4f3058f195
eventcontrollermotion: Port to new API model
2018-04-26 17:59:42 +02:00
Benjamin Otte
1e6eb1f8b9
draggesture: Port to new API model
2018-04-26 17:59:42 +02:00
Benjamin Otte
4ddc94b293
multipressgesture: Port to new API model
2018-04-26 17:59:42 +02:00
Daniel Boles
1e5c79ed47
testentrycompletion: Use the model we already got
...
cherry-pick of gtk-3-22 commit af350b20b1
2018-04-24 13:45:49 +01:00
Benjamin Otte
73b4a62f51
snapshot: Redo debug messages
...
Instead of every snapshot function having debug messages, have an
explicit gtk_snapshot_push_debug() function that appends a debug node.
2018-04-24 04:06:58 +02:00
Ting-Wei Lan
43a7f36993
gtk-demo, testgtk: Don't pass an integer to fabs
...
It looks like a mistake which compilers are likely to warn.
2018-04-22 21:59:13 +08:00
Ting-Wei Lan
f922109a9c
build: Make the default setting work on non-Linux Unix-like systems
...
All of the four platform-dependent backends are enabled by default. It
is usually a good default because it requires users to explicitly choose
backends they want to use. Rules in meson.build also automatically
disable unavailable backends for macOS, Windows, Linux, so users on
these 3 major platforms don't have to manually disable things when
running meson commands.
However, meson.build doesn't do the same thing for other Unix-like
systems, which is acceptable but not ideal. To make it easier to build
GTK+ on these systems, the Linux case, which enables X11 and Wayland and
disables Win32 and Quartz, is made the default for all operating systems
that are not Windows or macOS.
This commit also changes most 'host_machine.system()' calls to os_*
variables, which are easier to read and less likely to be used wrongly.
2018-04-22 21:57:10 +08:00
Benjamin Otte
af6b2cdb37
testgtk: Don't set cairo surfaces as icons
...
The code expects textures these days, so use those.
2018-04-12 14:03:48 +02:00
Benjamin Otte
b9c8c146d2
tests: Use gdk_texture_save_to_png() where appropriate
2018-04-12 14:02:59 +02:00
Daniel Boles
8d8db89669
testmodelbutton: Test :centered, :icon, :inverted
...
Test more stuff.
2018-04-08 18:48:16 +01:00
Daniel Boles
15b569e64d
testmodelbutton: Fix wrongly overridding MB child
...
I was setting a GtkButton:label, which resulted in the ModelButton's own
custom children getting lost. That doesn't make for a useful test...
2018-04-08 18:48:16 +01:00
Daniel Boles
08126ffdf2
testmodelbutton: Add explanatory comments to CSS
...
and load at an earlier, more sensible place, before creating any widgets
2018-04-08 18:48:16 +01:00
Daniel Boles
5bbb185e14
tests/testmodelbutton: Add this
...
and test whether :action-name, :role, and CSS nodes work as expected
https://gitlab.gnome.org/GNOME/gtk/issues/163
2018-04-08 13:17:18 +01:00
Matthias Clasen
75024fea60
testgtk: Drop snapshot
...
This needs to be redone with modern snapshotting infrastructure.
Lets drop it for now, it is somewhat duplicative with inspector
features.
2018-04-05 19:26:53 +02:00
Matthias Clasen
98f31e61d7
testgtk: Drop the event watcher
...
This is not a very useful test, and it is hard to keep working
in an event controller world.
2018-04-05 19:26:53 +02:00
Benjamin Otte
1aacb14236
testgtk: Remove draw signal usage
2018-04-05 14:57:10 +02:00
Benjamin Otte
c85547667f
testgtk: Take an actual snapshot of a widget
...
Don't just draw the widget, take the paintable of it instead!
2018-04-05 14:56:39 +02:00
Benjamin Otte
a595a4c2ce
testlist3: Set the actual row as drag icon
...
(Well, don't do anything actually, because dnd is broken, but
in theory...)
2018-04-05 14:56:39 +02:00
Benjamin Otte
ffc7b2bb0a
snapshot: Allow passing the bounds of the created paintable
...
This allows being more specific about the size.
It's useful in particular when the resulting render nodes might be
too small for the size, not only when they are too large. For the
latter case, using a clip node would be enough.
It also requires adding a clip node when rendering the resulting
paintable, but that should be optimized out by GtkSnapshot when not
necessary.
2018-04-05 14:56:39 +02:00
Benjamin Otte
169203951b
widget: Remove clip from size-allocate vfunc
...
As the clip is no longer needed, get rid of it.
2018-04-05 14:56:38 +02:00
Benjamin Otte
e3a717363b
snapshot: Remove clip argument from gtk_snapshot_new()
...
It's not used anymore. And anybody who wants to have a clip on a
newly created snapshot can achieve that using gtk_snapshot_push_clip().
2018-04-05 14:56:38 +02:00
Benjamin Otte
73650c6da2
gtk: Remove gtk_widget_queue_draw_region()
...
... and gtk_widget_queue_draw_area().
They don't doi anything anymore.
2018-04-05 14:56:38 +02:00
Timm Bäder
c2c1262766
testgtk: don't set a focus adjustment on a box
...
That will make the focus adjustment code in gtkcontainer.c scroll to the
wrong coordinates.
2018-03-28 16:32:47 +02:00
Benjamin Otte
cc9908353c
tests: Don't use gtk_drag_set_icon_surface()
2018-03-26 18:30:34 +02:00
Benjamin Otte
5415d05359
tests: Remove references to long-deleted property
2018-03-26 18:16:36 +02:00
Benjamin Otte
a1898d678b
surface: Remove gdk_surface_scroll()
...
It's yet another fancy way to call gdk_surface_invalidate_region().
Also remove the one testgtk test that was still using it.
2018-03-21 00:43:28 +01:00
Emmanuele Bassi
b304655e2d
tests: Update renamed symbol
2018-03-20 17:05:33 +00:00
Carlos Garnacho
28c27f37ee
Merge branch 'detect-synaptics-touchpads-v2' into 'master'
...
x11/xi2: Report touchpads as TOUCHPAD, not MOUSE
See merge request GNOME/gtk!65
2018-03-20 17:03:15 +00:00