Timm Bäder
33162eee1a
window: Fix an event widget/target mixup
...
This makes dragging inside a GtkEntry in the window decoration work
again.
2018-01-04 13:16:24 +01:00
Matthias Clasen
a25357007e
Fix pointer obscuring in text view
...
The code for hiding the mouse cursor until the next motion
event was not working, probably due to a typo here.
2018-01-02 21:52:43 -05:00
Matthias Clasen
12e4f4256d
Drop an unused enum value
...
We haven't had a GtkWindow::frame-event since the
linux-fb backends demise.
2018-01-02 18:14:13 -05:00
Matthias Clasen
d072201b12
docs: Don't mention non-longer-existing signals
...
The ::window-state-event signal no longer exists.
2018-01-02 18:05:19 -05:00
Timm Bäder
c1573a1fda
window: Avoid a set-but-not-used warning
2017-12-29 08:59:53 +01:00
Timm Bäder
b488329104
GskRenderer: Remove viewport property
2017-12-21 18:25:52 +01:00
Timm Bäder
fcbbaae63c
window: Make sure an event has a display
...
This fixes a crash happening later on when something tries to access the
event's display.
2017-12-19 07:39:29 +01:00
Matthias Clasen
e92c0e85ec
Replace gdk_keymap_get_for_display by gdk_display_get_keymap
...
Replace all uses of the old function by the new one.
No functional change.
2017-12-15 07:44:58 -05:00
Matthias Clasen
1e1904a9b8
gtk: Stop using GdkEventWindowState
...
We can instead use the new GdkWindow::state property
change notification. The event is going away.
2017-12-14 22:24:06 -05:00
Matthias Clasen
54a6273191
Drop gdk_atom_intern
...
Atoms are just interned strings now, so we can just
use g_intern_string.
2017-12-13 23:39:03 -05:00
Benjamin Otte
d7f34874ab
x11: Make unsetting transient-for work
...
... and just unset it from GtkWindow instead of fiddling with
properties.
2017-12-14 03:05:34 +01:00
Carlos Garnacho
d491e49fd6
gtk: s/gdk_event_free/g_object_unref/
2017-12-14 01:05:48 +01:00
Carlos Garnacho
b9db0b55cb
gdk: Refurbish GdkEvent struct hierarchy
...
Make all specific event structs contain a GdkEventAny, so the base
struct can be extended without modifying structs all over the place.
2017-12-14 00:58:32 +01:00
Carlos Garnacho
8233cf3688
gtkwindow: Allow edge resizing from corners if constraints forbid either side
...
The fix is twofold. First, when checking that a corner is resizable, we must
check the constraints on both edges. Second, when checking either edge we
must include both perpendicular sides in order to allow those to be
resizable when the constraint does not allow resizing the edge being
checked.
2017-12-09 22:19:57 +01:00
Carlos Garnacho
6b4dd4be6c
gtkwindow: Use shadow border when calculating resize areas positions
...
This way resize areas are correctly positioned right outside the visible
window edge on all sides.
2017-12-09 17:33:44 +01:00
Carlos Garnacho
f6ef18ac74
gtkwindow: Do not account handle size when checking content area
...
This is necessary to bring back the L-shaped resize corners. On all edges
(not corners) the handle width is determined by the border size.
2017-12-09 17:32:02 +01:00
Matthias Clasen
b3ebffa07d
Switch the order for cursor lookup
...
When looking for the cursor to apply, start from the innermost
widget and go up. This is the right behavior for cases like
entry icons. The top-down order we were using so far is the
right behavior for cases like global wait cursors. Since we
have entry icons in gtk, but not global wait cursors, lets
pick the other order for now.
2017-12-09 08:35:23 -05:00
Matthias Clasen
029a84aa74
Fix fallout from the show-close-button rename
...
I had overlooked ui files. We should really
validate those during build.
2017-12-08 11:29:14 -05:00
Timm Bäder
1aa811ce12
Remove all gtk_widget_get_content_size usages
...
And remove the function itself. Make everything use gtk_widget_get_width
and gtk_widget_get_height instead.
2017-12-06 07:56:12 +01:00
Руслан Ижбулатов
6a770517cc
Only register application/x-rootwindow-drop on X11
...
application/x-rootwindow-drop is not useful anywhere else,
so put it under #ifdef GDK_WINDOWING_X11
On W32 this prevents toplevels from automatically becoming valid
drop targets with a useless drop type.
(This commit is cherry-picked from the gtk-3-22 branch)
https://bugzilla.gnome.org/show_bug.cgi?id=786509
2017-12-02 10:38:31 +00:00
Timm Bäder
ff35fbf120
window: Plug a memory leak
2017-12-01 07:30:25 +01:00
Matthias Clasen
4db2426336
window: Stop using GdkPixbuf
...
We can get by with just using GdkTexture.
2017-11-29 17:28:15 -05:00
Matthias Clasen
83ab83043e
Cosmetic formatting fixes
2017-11-29 17:28:15 -05:00
Kjell Ahlstedt
7ef5858f8d
GtkWindow: Fix the down-scaling in icon_from_list()
...
Must use floating-point division to get the correct scale factors.
cairo_set_source_surface() must be called after cairo_scale().
https://bugzilla.gnome.org/show_bug.cgi?id=790287
2017-11-26 18:54:59 -05:00
Matthias Clasen
7c0a1ddb05
window: Don't use GdkDeviceManager
...
We can just as well use GdkSeat to enumerate (attached)
devices. Note that this change excludes floating devices
from consideration.
2017-11-25 11:04:14 -05:00
Benjamin Otte
9a6ec4e959
contentformats: Rename GtkTargetList
...
It's now called GdkContentsFormat
2017-11-20 23:12:33 +01:00
Benjamin Otte
c863ac0f90
dnd: Remove GtkTargetEntry and GtkTargetFlags
...
warning: We don't do any same-app checks anymore so you currently can
copy local data into external apps.
This will be fixed later.
2017-11-20 23:12:33 +01:00
Matthias Clasen
ffd6baec42
gtk: Intern css names
...
This avoids a bunch of strdups at startup.
2017-11-17 22:49:57 -05:00
Matthias Clasen
dca8c8e189
gtk: Stop using gdk_notify_startup_complete_with_id
...
This function is about to go away. Instead, use the
display-specific function that this is a wrapper of.
2017-11-16 22:45:04 -05:00
Benjamin Otte
3f5178dc21
selection: Remove the info uint
...
Instead of allowing people to pass a uint user-data, insist on them
comparing mime types.
The user data was a uint instead of a pointer anyway, so uniqueness
could not be guaranteed and it caused more issues than it was worth.
And that's ignoring the fact that it basically wasn't used.
2017-11-16 22:59:43 +01:00
Benjamin Otte
5a1a11bcde
dnd: Make GtkDragDest and GtkDragSource use GtkTargetList
...
This gets rid of GtkTargetEntry in the API and consistently uses
GtkTargetList.
2017-11-15 19:07:17 +01:00
Benjamin Otte
ed1b6a9bed
gdkwindow: Remove event_mask arguments from constructors
2017-11-13 23:41:38 +01:00
Matthias Clasen
a381ee6a55
Fix a typo
2017-11-08 22:09:23 -05:00
Benjamin Otte
cf2d549e92
widget: Implement gtk_widget_pick()
...
... and use it.
2017-11-05 05:13:17 +01:00
Benjamin Otte
70846c85b3
window: Make icons GdkTextures
...
Cairo surfaces are bad, mkay?
2017-11-05 00:07:17 +01:00
Benjamin Otte
9323d098a6
gdk: Cursors no longer have a display
...
Change constructors to reflect that.
While doing so, also add a fallback argument to the cursor constructors,
so it is now possible to create cursors with fallback.
2017-11-04 00:07:13 +01:00
Carlos Garnacho
b8d3f88ddb
gtkwindow: Use event target widget for WM handling special paths
...
The check used to achieve discarding events not meant for the window
widget itself (because they are handled in the regular paths). Using
the target widget is the equivalent now.
2017-11-03 22:19:13 +01:00
Kjell Ahlstedt
23014438d6
GtkWindow: Tidy up after icon became a cairo surface
...
Use g_value_set/get_boxed() in gtk_window_get/set_property(), case PROP_ICON.
icon_from_list() shall always add a reference to the returned icon.
gtk_window_set_icon() must accept icon != NULL.
https://bugzilla.gnome.org/show_bug.cgi?id=789870
2017-11-03 20:05:28 +01:00
Matthias Clasen
81cda3dcf7
Use x11-specific api to get at the screen
...
gdk_display_get_default_screen is going away.
2017-11-01 19:44:28 -04:00
Matthias Clasen
606345cbaa
Change the fullscreen-on-monitor api
...
Use GdkMonitor here, since that is our primary monitor
object now, and GdkScreen is going away.
2017-11-01 14:17:20 -04:00
Benjamin Otte
b880296354
window: Unset transient parent in set_display()
...
If somebody changes a window's display, the transient parent cannot
stay if it's on a different display.
2017-11-01 18:17:11 +01:00
Benjamin Otte
8059f9bb3a
window: Clear the renderer un unrealize
...
We disconnect from the GDK window, so the renderer can't keep any useful
state.
Plus, we might be using an entirely different window next time we
realize (after a call to gtk_window_set_display() for example) that should
use a completely different renderer anyway.
2017-11-01 15:48:00 +01:00
Matthias Clasen
a3cffa5072
Drop GdkScreen from GdkDevice apis
...
Returning the screen does not add anything here and
GdkScreen is going away.
2017-10-31 12:30:38 -04:00
Benjamin Otte
07164e098a
window: Turn gtk_window_set_screen() into gtk_window_set_display()
...
And have a priv->display instead of a priv->screen.
Includes turning gtk_menu_set_screen() into gtk_menu_set_display(),
because that function just forwards to its window.
2017-10-31 08:25:37 +01:00
Benjamin Otte
c8986e66ce
window: Remove gtk_window_get_screen()
...
It's identical to gtk_widget_get_screen(), just use that one.
2017-10-31 04:33:54 +01:00
Benjamin Otte
44614394e6
widget: Turn screen-changed signal into display-changed
2017-10-31 00:43:11 +01:00
Matthias Clasen
dc0570cc17
gsk: Drop the GskRenderer::scale-factor property
...
This is can always be obtained from the window that is already
associated with the renderer, no need to maintain a separate
property for it.
2017-10-28 11:49:39 -04:00
Drew DeVault
1b279e3d4a
Wayland: Implement KDE's SSD protocol
...
If the compositor prefers server-side decorations and the client doesn't
customize the title bar, we disable client-side decorations and let the
compositor know. Otherwise, we continue to use client-side decorations.
Signed-off-by: Drew DeVault <sir@cmpwn.com>
https://bugzilla.gnome.org/show_bug.cgi?id=781909
2017-10-26 15:51:56 -04:00
Timm Bäder
7ee2ab32b8
window: Use correct destroy notify for icon list
...
The list contains cairo_surface_t instances now, not GdkPixbuf anymore.
2017-10-23 14:43:47 +02:00
Alexander Larsson
d3fc937b4d
GtkWindow/GdkWindow: Finish converting icons to surfaces
...
There were some parts left, for instance gdk_window_set_icon_list.
2017-10-23 13:45:25 +02:00