Commit Graph

5909 Commits

Author SHA1 Message Date
Giovanni Campagna
ad2f96ff48 Gdk: fix wrong user_data handling in resize_cairo_surface()
Instead of destroying the surface in the backend if this is
unable to resize, let the core code do it, and do it properly.

Based on a patch by Benjamin Otte.

https://bugzilla.gnome.org/show_bug.cgi?id=725172
2014-02-26 00:04:41 +01:00
Jasper St. Pierre
084c2feb7e wayland: Don't destroy the cairo surface when resizing it
The code in GDK is incredibly broken and nobody is quite sure what's
right-side-up and what's upside down, but this breaks mutter-wayland
now, so let's remove it. It might leak, but we should probably do a
full restructuring of GDK drawing to fix it.
2014-02-23 16:07:38 -05:00
Rui Matos
6ea4bf8a9d wayland: Fix gdk_window_wayland_resize_cairo_surface()
Like in other backends (except X) we can't resize cairo image surfaces
so let's sync the code here with what the other backends do.

This prevents the painting machinery above us to paint on the wrong
buffer.

https://bugzilla.gnome.org/show_bug.cgi?id=724968
2014-02-23 18:40:29 +01:00
Matthias Clasen
6dcf6e0f3b Be more careful to change state atomically
This avoids temporary states of maximized+tiled that
we otherwise report.
2014-02-22 22:24:20 -05:00
Paolo Borelli
e34d9eafed Do not leak cairo_region 2014-02-21 21:11:21 +01:00
William Jon McCann
469d333aa2 docs: use Returns: consistently
Instead of Return value:
2014-02-19 18:56:05 -05:00
Jasper St. Pierre
7fbcff8d71 xdg-shell: Update for focused_set / focused_unset rename 2014-02-18 16:48:42 -05:00
Jasper St. Pierre
6845eade49 wayland: Update to new xdg-shell pinging standards 2014-02-18 16:47:34 -05:00
Matthias Clasen
c779b42476 Docs: use // for comments in examples
Without sgml mode, we can't escape /* as /* anymore,
so just switch to // for comments in examples.
2014-02-14 23:34:22 -05:00
Ting-Wei Lan
3e02f52031 Do not return things from a void function
Reported in https://bugzilla.gnome.org/show_bug.cgi?id=724008
Author:    Ting-Wei Lan <lantw44@gmail.com>
2014-02-12 22:48:19 -05:00
Matthias Clasen
3459a0a273 Revert "Introduce API to get the preferred visual"
This reverts commit 2b95d1a34e.

Conflicts:
	gdk/gdkscreen.c
2014-02-10 22:15:28 -05:00
Matthias Clasen
d326507978 Revert "Use gdk_screen_get_preferred_visual()"
This reverts commit 30fa1426cf.

See the bugs
https://bugzilla.gnome.org/show_bug.cgi?id=724067
https://bugzilla.gnome.org/show_bug.cgi?id=723740
for the issues that are the reason for this revert.
2014-02-10 22:12:53 -05:00
Matthias Clasen
7f6a964c47 Docs: Remove all entities and turn off sgml mode
With all element markup gone, it is time to turn off
sgml mode, and get rid of entities as well.
2014-02-09 17:58:07 -05:00
Jasper St. Pierre
bfe8a354cd wayland: Add support for set_shadow_width 2014-02-07 19:33:17 -05:00
Jasper St. Pierre
c52e710dc8 wayland: Add support for delete event 2014-02-07 18:30:12 -05:00
Jasper St. Pierre
b14e86fad2 wayland: Remove edges from configure 2014-02-07 18:30:07 -05:00
Jasper St. Pierre
1859d7631b gdkthreads: Update documentation 2014-02-07 18:01:16 -05:00
William Jon McCann
13998c55e7 docs: use proper quotations instead of '*' 2014-02-07 14:22:39 -05:00
William Jon McCann
a4b5929e81 docs: use apostrophe in *'re 2014-02-07 13:37:09 -05:00
William Jon McCann
285d216d3e docs: use apostrophe in *'ll 2014-02-07 13:35:54 -05:00
William Jon McCann
e34bd4137d docs: use apostrophes in *n't 2014-02-07 13:32:47 -05:00
William Jon McCann
f0000b2f3d docs: use more apostrophes 2014-02-07 13:26:12 -05:00
William Jon McCann
7a208fbbf3 docs: use proper apostrophe
https://wiki.gnome.org/Design/OS/Typography
2014-02-07 13:06:10 -05:00
William Jon McCann
f116f0071e docs: use links instead of <xref> 2014-02-07 11:13:11 -05:00
William Jon McCann
0ce016650b docs: Use markup for links 2014-02-07 09:42:12 -05:00
Matthias Clasen
8e797c1195 Wayland: Set gtk-dialogs-use-header
Since we don't have a setting for this, hardcode the value
for now.
2014-02-06 22:51:05 -05:00
Jasper St. Pierre
e583e3ebce gdkwindow-wayland: Make function order match listener order 2014-02-06 14:29:18 -05:00
William Jon McCann
6abe7a7094 docs: use markdown instead of <note> 2014-02-06 08:01:49 -05:00
William Jon McCann
47469eb296 Use proper quotes in gdk 2014-02-05 15:08:42 -05:00
William Jon McCann
3b3d8ca456 docs: Use "#" for refsect2 instead of ## 2014-02-04 21:00:58 -05:00
William Jon McCann
c6ef8bdc9c docs: don't use <para id=""> 2014-02-04 20:21:05 -05:00
William Jon McCann
9ecc35ec68 docs: don't use <orderedlist> 2014-02-04 19:45:36 -05:00
William Jon McCann
a22358c0c0 docs: use ` instead of <literal> 2014-02-04 18:24:29 -05:00
William Jon McCann
76447c3512 docs: use quotes instead of <firstterm> 2014-02-04 18:10:11 -05:00
William Jon McCann
2dcbe27a06 docs: don't use <option> 2014-02-04 17:48:33 -05:00
William Jon McCann
ff8864cbf3 docs: use a code block instead of <screen> 2014-02-04 17:31:17 -05:00
William Jon McCann
9ff678c37f docs: replace another envar that sneaked in 2014-02-04 17:25:37 -05:00
William Jon McCann
bf7afa48f8 docs: replace all figures with headings and images 2014-02-04 17:20:43 -05:00
William Jon McCann
63e887e165 docs: replace all <examples> with markdown headings 2014-02-04 16:58:54 -05:00
William Jon McCann
9f99f567c8 docs: use markdown instead of inlinegraphic tags 2014-02-04 16:58:53 -05:00
William Jon McCann
8d6717097c docs: Use markdown for ulinks 2014-02-04 16:58:53 -05:00
William Jon McCann
50e06e11ee docs: use markdown instead of <filename> tags 2014-02-04 16:58:53 -05:00
William Jon McCann
a479ee5de5 docs: use markdown for <envar> tags 2014-02-04 16:58:53 -05:00
Matthias Clasen
30fa1426cf Use gdk_screen_get_preferred_visual()
When creating windows, and when returning a widgets
visual, use the new API to get the preferred visual.
2014-02-04 13:15:47 -05:00
Matthias Clasen
2b95d1a34e Introduce API to get the preferred visual
Unless GDK_RGBA=0 is set, this will be the RGBA visual.
The new function is called gdk_screen_get_preferred_visual().

https://bugzilla.gnome.org/show_bug.cgi?id=630217
2014-02-04 13:15:46 -05:00
Matthias Clasen
15060a8f24 Revert "gdk: enable rgba visuals by default"
This reverts commit a2ccb6601e.

This turns out to break GtkStatusIcon, and invalidates
the documentation of gdk_screen_get_system_visual().
2014-02-04 13:15:46 -05:00
Alexander Larsson
cc5752aff4 gdkwindow: Fix gdk_window_set_child_shapes()
This did the reverse of what it should, making the shape be
the part where the children were *not*.
2014-02-04 12:03:03 +01:00
Adam Jackson
cc517f116a X11: Decode extension names in the error handler
This commit uses the Xlib cache to obtain the name of the X extension
for the request that caused the error.

https://bugzilla.gnome.org/review?bug=723555
2014-02-03 20:14:13 -05:00
Jasper St. Pierre
8061df1544 gdkwindow-wayland: Obey Wayland buffer semantics
We can't destroy buffers if they're in-use by the compositor. Well,
technically we can, but that is considered undefined by Wayland and
mutter won't cope with it very well -- it simply kills the client.

To solve this, we need to delay the destroy operation until the
compositor tells us that it's released the buffer. To do this, hold
an extra ref on the cairo surface as long as the surface is in-use
by the compositor.
2014-02-03 19:08:45 -05:00
Matthias Clasen
245c385ae7 Docs: Don't use note elements
In most cases, the text itself makes the message clear enough.
2014-02-02 01:22:14 -05:00
Matthias Clasen
30cc1512e6 Docs: Use markdown for lists
This greatly reduces the amount of xml in the docs.
2014-02-02 01:07:39 -05:00
Matthias Clasen
09d1b28249 docs: Convert to markdown
Specifically, switch to using markdown syntax for sections.
2014-02-02 00:30:27 -05:00
Jasper St. Pierre
c08b315c32 gdkwindow-wayland: Erm, put the DESTROYED check in the right spot... 2014-01-31 16:43:49 -05:00
Jasper St. Pierre
98d1b5464d gdkwindow-wayland: Bail out early if we get a frame callback when destroying our window
This prevents warnings like

(gtk3-demo:14948): Gdk-CRITICAL **: _gdk_frame_clock_thaw: assertion 'GDK_IS_FRAME_CLOCK (clock)' failed

(gtk3-demo:14948): Gdk-CRITICAL **: gdk_frame_clock_get_timings: assertion 'GDK_IS_FRAME_CLOCK (frame_clock)' failed

We need to do this, as the compositor might have already sent us a frame
event, in-flight, at the same time we destroy our window. In this case, we'll
receive the then-in-flight "done" event, and then warn as we try to look
up the frame clock on a destroyed window.
2014-01-31 16:25:27 -05:00
Jasper St. Pierre
78169aa192 gdkwindow-x11: Fix compile warning
It doesn't actually matter, since we don't pass any real attributes
anyway, but this should be the correct type...
2014-01-31 14:34:13 -05:00
Jasper St. Pierre
533a1306cf gdkwindow: Use an InputOnly window for focus_window
For XWayland, this is somewhat important to prevent a dummy XWayland surface
being made for all clients that connect...

https://bugzilla.gnome.org/show_bug.cgi?id=723390
2014-01-31 14:23:47 -05:00
William Jon McCann
48b359ea53 docs: Work around cpp complaining about comments in docs in the standard way
https://bugzilla.gnome.org/show_bug.cgi?id=723119
2014-01-29 12:45:49 -05:00
William Jon McCann
4c8bd8e7cf docs: Identify examples that are C code
https://bugzilla.gnome.org/show_bug.cgi?id=723119
2014-01-29 12:45:49 -05:00
William Jon McCann
768bc44081 docs: use |[ ]| instead of <programlisting></programlisting>
https://bugzilla.gnome.org/show_bug.cgi?id=723119
2014-01-29 12:45:49 -05:00
William Jon McCann
2d003553e8 docs: don't use <emphasis>
It is a little heavy handed. The text can speak for itself.
2014-01-28 02:02:05 -05:00
William Jon McCann
0a1d276f4f docs: don't use <type> tags
Use # syntax where appropriate.
2014-01-28 00:21:26 -05:00
William Jon McCann
bf35c77f14 docs: use () instead of <function> tags 2014-01-27 23:08:08 -05:00
William Jon McCann
4872ee75e6 docs: don't use structfield tags 2014-01-27 19:59:58 -05:00
William Jon McCann
22586ea7c2 docs: use #*-struct instead of <structname> 2014-01-27 19:59:55 -05:00
Ignacio Casal Quinteiro
e1b874b44f win32: remove useless comment since we do not support win98 anymore 2014-01-27 14:39:53 +01:00
Ignacio Casal Quinteiro
254d35af29 win32: handle again gtk-font-name
This code is ugly but it seems to do the work
2014-01-27 09:47:21 +01:00
John Ralls
489dfa9389 Bug 711298 - "Edit Scheduled Transaction" window way too modal
Put dialogs and utility windows in the same level as normal and
toolbar windows so that Gtk can control their stacking instead of
forcing them, rather unnaturally, to be on top of all other windows,
even other application windows, even when another application has
focus.
2014-01-24 15:22:55 -08:00
William Jon McCann
a2ccb6601e gdk: enable rgba visuals by default
Unless GDK_RGBA=0 is set.

https://bugzilla.gnome.org/show_bug.cgi?id=630217
2014-01-23 11:51:51 -05:00
William Jon McCann
31532ca42f docs: fix typo in signal link 2014-01-21 18:57:41 -05:00
William Jon McCann
0320610387 docs: fix docs link 2014-01-21 18:57:41 -05:00
William Jon McCann
916f1c0fd6 docs: fix style-updated link 2014-01-21 18:57:41 -05:00
William Jon McCann
10f25501f4 docs: fix link to even structures info 2014-01-21 18:57:41 -05:00
William Jon McCann
07535e9682 docs: remove reference to function that doesn't exist 2014-01-20 18:27:29 -05:00
William Jon McCann
8a0b4471b8 docs: fix typo in function name 2014-01-20 18:27:29 -05:00
William Jon McCann
64ffd759af docs: fix typo in parameter name 2014-01-20 18:27:29 -05:00
William Jon McCann
ed68d3f9de docs: fix typo in type name 2014-01-20 18:27:29 -05:00
William Jon McCann
df989e3a27 docs: use GDK_KEY_* names in docs 2014-01-20 18:27:29 -05:00
William Jon McCann
4be68e518d docs: fix typos in class names 2014-01-20 18:27:29 -05:00
William Jon McCann
5735e8e09d docs: remove reference to nonexistant api
Refers to an uncommitted part of
https://bugzilla.gnome.org/show_bug.cgi?id=696001
2014-01-20 18:27:29 -05:00
William Jon McCann
8a05d86802 docs: fix typo in function name 2014-01-20 18:27:29 -05:00
William Jon McCann
3be4b46967 docs: zero is a literal not a type link 2014-01-20 18:27:29 -05:00
William Jon McCann
e1be5e2956 docs: fix typo in doc syntax 2014-01-20 18:27:29 -05:00
William Jon McCann
af5ea79f3a docs: fix typo in type name 2014-01-20 18:27:29 -05:00
William Jon McCann
43bd9f210c docs: fix typo in type name 2014-01-20 18:27:28 -05:00
William Jon McCann
139b33aae5 docs: fix type in parameter type 2014-01-20 18:27:28 -05:00
William Jon McCann
201b093719 docs: remove link to missing example
Removed in e95490c15e etc.
2014-01-20 18:27:28 -05:00
William Jon McCann
eecfa3eb20 docs: add docs for GtkFrameClock 2014-01-20 18:27:28 -05:00
William Jon McCann
ca61e63b2c docs: fix docs for GDK_XID_TO_POINTER and GDK_POINTER_TO_XID 2014-01-20 18:27:28 -05:00
William Jon McCann
40b540c854 docs: fix typo in GDK_WINDOW_STATE_TILED 2014-01-20 18:27:28 -05:00
William Jon McCann
b99cd45c2b docs: add missing scroll delta fields 2014-01-20 18:27:28 -05:00
William Jon McCann
00780017aa docs: add missing GdkEvent field names 2014-01-20 18:27:28 -05:00
William Jon McCann
e3d81a99c6 docs: add missing docs for GDK_MODIFIER_RESERVED_*_MASK 2014-01-20 18:27:28 -05:00
William Jon McCann
83e8e38bd2 wayland: fix rename of wl_shell to xdg_shell
Regression from 9127087e1c
2014-01-20 14:37:33 -05:00
William Jon McCann
dc8439ee79 docs: add missing docs for GDK_WINDOWING_WAYLAND 2014-01-20 13:42:57 -05:00
Volker Sobek
a4d69e7f14 docs/comments: Fix spelling of 'explicitly'
This replaces all occurrences of 'explicitely' with 'explicitly'. Only
code comments and gtk-doc statements are affected.

https://bugzilla.gnome.org/show_bug.cgi?id=722429
2014-01-18 03:47:46 +01:00
Matthias Clasen
3701de14a1 Add a setting for dialog headers
This setting will let us keep traditional appearance
of dialogs on platforms where this is expected.
The new setting is called gtk-dialogs-use-header, backed
by the Gtk/DialogsUseHeader xsetting.
2014-01-17 17:52:08 -05:00
Tim Lunn
17b6819991 gdk: Don't leak GValue when xsetting is unknown
https://bugzilla.gnome.org/show_bug.cgi?id=722070
2014-01-13 22:20:28 -05:00
Matthias Clasen
7125cdc5ff X11: Support keyboard-initiated move and resize operations
The EWMH defines _NET_WM_MOVERESIZE_SIZE_KEYBOARD and
_NET_WM_MOVERESIZE_MOVE_KEYBOARD for operations that are not
initiated by a button-press event. Allow using these by passing
a button of 0 to gdk_window_begin_move/resize_drag.
2014-01-12 22:25:19 -05:00
Matthias Clasen
5657b805d7 Some struct repacking
Save a few bytes here and there.
2014-01-12 22:25:19 -05:00
Andika Triwidada
0a768d274d Changed obsolete FSF portal addresses to web address
Fixed https://bugzilla.gnome.org/show_bug.cgi?id=721530
2014-01-12 19:56:49 +07:00
Rico Tzschichholz
ed5d9b3c3e x11: Add/Fix '(type *)' g-i annotations 2014-01-09 21:47:04 +01:00
William Hua
2a109250d5 Move get_key_equivalent() to gdk quartz utils.
https://bugzilla.gnome.org/show_bug.cgi?id=710351
2014-01-08 17:42:19 -05:00
Ryan Lortie
feedf46ddc quartz: implement gdk_window_set_shadow_width()
Use the information to allow dragging windows all the way to the top of
the screen (ie: allow the top shadow to go under the menubar).

https://bugzilla.gnome.org/show_bug.cgi?id=720374
2014-01-06 15:27:28 -05:00
Ryan Lortie
394fe4b57e quartz: fix manual window move
We need to have gdk skip standard processing of events when we are in
manual move in addition to manual resize.

https://bugzilla.gnome.org/show_bug.cgi?id=720357
2014-01-06 15:27:28 -05:00
Rico Tzschichholz
1f9da6675d x11: Include missing public headers to GdkX11 gir build 2014-01-05 21:46:40 +01:00
Matthias Clasen
f759523a30 Deal with broken _NET_WORKAREA more gracefully
fvwm seems to have problems keeping _NET_WORKAREA in sync with
the number of desktops. Instead of reading garbage, silently use
the full screen as workarea for desktops that are not covered
by the _NET_WORKAREA property.

https://bugzilla.gnome.org/show_bug.cgi?id=698248
2014-01-04 15:15:00 -05:00
Matthias Clasen
c37e3b6316 x11: Avoid a possible memory leak in an error case
If _NET_WORKAREA is set to nonsensical values, we should still
free the memory before returning.
2014-01-04 15:13:51 -05:00
Matthias Clasen
8a42bb69aa Trivial typo fix 2014-01-04 14:11:55 -05:00
Matthias Clasen
7e1a4800fa Redo header bar decorations once more
Applications need a way to fix or adapt the decoration layout,
for situations like split header bars. Setting the layout from
the theme with a style property did not offer a good way to do
this, and the ::show-close-button property does not provide
fine-grained control.

To improve the situation, move the layout string to a property of
GtkHeaderBar which is backed by a setting. This allows platforms to
set a default button layout independent of the theme, while applications
can override the default.

The style GtkWindow style property is now deprecated and ignored.
2013-12-21 21:58:24 -05:00
Marek Kasik
ccd6e1ba47 gdkwindow: Don't add the same window to "update_windows" twice
This prevents passing of such window to another GMainLoop.

https://bugzilla.gnome.org/show_bug.cgi?id=711552
2013-12-18 18:15:01 +01:00
Matthias Clasen
af87a7e7c8 Fix make dist 2013-12-17 07:31:41 -05:00
Marek Kasik
1b032b18cc gdkwindow: Handle references in "update_windows" list correctly
Since update_windows list is a static variable in GdkWindow.c which
contains pointers to windows which needs to be updated, it can happen
that it contains a pointer to a window even after quit from a gtk_main().
If another gtk_main() is called in the same process it tries to process
windows in the list which leads to a crash.
Correct reference count handling of added windows prevents such applications
from crash.

https://bugzilla.gnome.org/show_bug.cgi?id=711552
2013-12-16 17:58:04 +01:00
Bastien Nocera
4b42526e1f gdkwindow: Use GdkWindowHints instead of guint for flags
https://bugzilla.gnome.org/show_bug.cgi?id=720342
2013-12-14 15:29:44 -05:00
Ryan Lortie
04897e5b09 gdk: add gdk_window_set_shadow_width()
And deprecate the X11-specific version of it.

We call this new API _set_shadow_width() and not _set_frame_extents()
because we already have a gdk_window_get_frame_extents() with a
different meaning and different type of value.

https://bugzilla.gnome.org/show_bug.cgi?id=720374
2013-12-12 23:53:47 -05:00
Jasper St. Pierre
e582404e90 wayland: Fix order of xdg-shell requests 2013-12-11 19:28:30 -05:00
Jasper St. Pierre
fe584b9f00 wayland: Update to latest xdg-shell.xml 2013-12-07 13:25:38 -05:00
Jasper St. Pierre
4844ef88db wayland: Make sure to call use_unstable_version 2013-12-07 13:25:38 -05:00
Benjamin Otte
0bff206915 gdk: Add some return_if_fail() warnings
so we have a better chance of catching the correct cause of bugs like

https://bugzilla.gnome.org/show_bug.cgi?id=719977
2013-12-07 01:39:38 +01:00
Matthias Clasen
8fbda8efce Don't distribute generated sources
This was causing problems when building 3.10.6 against an older
wayland.
2013-12-05 09:07:19 -05:00
Carlos Garnacho
f6c9a33841 x11: Handle XINotifyPassiveGrab/Ungrab in focus events
The focus handling code is shared between core and XI2 implementations,
so just handle the extra XI2 types for passive grabs. Those must be dealt
with in the same way than active grabs. Focus events with this crossing
mode could happen currently through the XIGrabFocusIn passive grab.

https://bugzilla.gnome.org/show_bug.cgi?id=719762
2013-12-04 21:22:23 -05:00
Carlos Garnacho
3dbabbd2e5 x11: Handle all XI2 crossing mode values in switch
This fixes potential assertions if a GTK+ app gets to receive
a XINotifyPassiveGrab/Ungrab pointer crossing event, currently
triggerable by XIGrabEnter passive grabs.

http://bugzilla.gnome.org/show_bug.cgi?id=719762
2013-12-04 21:22:23 -05:00
Matthias Clasen
e2745794b1 Revert "gdkwindow-x11: Don't set WM_TAKE_FOCUS if accept_focus is FALSE"
This reverts commit 809aab2c8e.
2013-12-04 11:21:42 -05:00
Chun-wei Fan
901127243a GDK-Win32: Ensure sources use UNIX line endings
This makes things more consistent with the other sources and makes patches
easier to apply cleanly.
2013-12-04 08:57:43 +08:00
Philip Withnall
c73bdb21b4 gdkwindow: Remove an unused assignment
The show variable is assigned to in both branches of an if block a
little further down.

Found with scan-build.

https://bugzilla.gnome.org/show_bug.cgi?id=712760
2013-12-02 10:51:07 +00:00
Philip Withnall
ad6f4926b6 gdkwindow: Remove an unused assignment
scale is only used if HAVE_CAIRO_SURFACE_SET_DEVICE_SCALE is defined.

Found with scan-build.

https://bugzilla.gnome.org/show_bug.cgi?id=712760
2013-12-02 10:51:07 +00:00
Benjamin Otte
1d2a070254 x11: Don't crash if a window is on an unmanaged screen
_gdk_x11_display_screen_for_xrootwin() can return NULL. If so, return
NULL from gdk_x11_window_foreign_new_for_display().

https://bugzilla.gnome.org/show_bug.cgi?id=709716
2013-11-25 21:14:34 +01:00
Carlos Garnacho
d1414211bf x11: keep track of the screen pixel size by calculating the bounding box of monitors
This is so we always have the latest information given by XRandR (or other), and not
rely on Core protocol information that might not have been updated yet.

This is specially visible when a monitor is connected (less frequent) or disconnected
(much more frequent), callbacks on GdkScreen::monitors-changed that call
gdk_screen_get_width/height() could get the screen size previous to the monitor
rearrangement.

So in order to fix this, keep track of the latest monitors information, and calculate
the bounding box in order to know the screen size.

https://bugzilla.gnome.org/show_bug.cgi?id=715029
2013-11-25 17:19:46 +01:00
Philip Withnall
86b6170940 gdkwindow: Fix potential uses of uninitialised variables
Found with scan-build.

https://bugzilla.gnome.org/show_bug.cgi?id=712760
2013-11-24 21:20:44 +00:00
Carlos Garnacho
a53a931755 x11: Unset GdkX11DeviceXI2 scroll valuators on device change
Scroll valuators were being just appended again and again, leading
to 1) a growing memory issue anytime a device changed 2) the first
scroll valuators to stay permanent on the application lifetime, as
the first stored valuators would always match.

https://bugzilla.gnome.org/show_bug.cgi?id=705203
2013-11-22 12:49:32 +01:00
Jasper St. Pierre
aa02b5b909 wayland: Sync transient-for on xdg-surface show as well... 2013-11-21 13:04:00 -05:00
Jasper St. Pierre
9232089b35 wayland: Allow set_title after initial showing
and fix the ordering of title / app_id
2013-11-21 13:04:00 -05:00
Jasper St. Pierre
750419e8d9 Update xdg-shell.xml 2013-11-21 13:03:59 -05:00
Jasper St. Pierre
03ad459c5b Update xdg-shell.xml 2013-11-19 18:59:50 -05:00
Jasper St. Pierre
937dd010d0 wayland: Don't assert fail in DND
This needs completion, sure thing, but let's try to just not fall
flat on our face first.
2013-11-19 18:55:26 -05:00
Jasper St. Pierre
96ca7fe6e6 wayland: Don't recreate the gtk_surface on every show
It's illegal.
2013-11-19 18:40:58 -05:00
Jasper St. Pierre
6f9b2ac805 wayland: Set DBus properties after we've constructed the xdg_surface 2013-11-19 16:37:25 -05:00
Jasper St. Pierre
7e3e50729f wayland: Fix invalid cast in transient_for 2013-11-19 12:36:27 -05:00
Carlos Garnacho
fee754e0d2 gdk: Ignore crossings generated by passive grabs when resetting scroll axes
Passive grabs may take pointer focus out of the application, even though
the pointer didn't leave the window, but those events still trigger resetting
of the scroll axes. This is most visible with compiz, and possibly other
reparenting WMs, where passive grabs happen on the WM-managed window that
is a parent of the application toplevel.

As it is not possible to have scrolling happening on the timespan a passive
grab takes action, it is entirely safe for GTK+ to assume none happened if
it gets a crossing event of that nature.

https://bugzilla.gnome.org/show_bug.cgi?id=699574#c33
2013-11-18 22:12:18 +01:00
Jasper St. Pierre
9127087e1c wayland: Replace wl_shell_surface with xdg_shell 2013-11-18 13:44:20 -05:00
William Hua
a41305135c Fix missing return and closing brace.
https://bugzilla.gnome.org/show_bug.cgi?id=712514
2013-11-18 06:01:51 -05:00
Carlos Garnacho
962415aeb7 x11: Add extra debug spew on XI2 crossing and button events
This information will be useful in case someone stumbles on a situation
similar to https://bugzilla.gnome.org/show_bug.cgi?id=699574, so we can
figure out where do the crossing events come from or go to easily.
2013-11-17 00:42:18 +01:00
Carlos Garnacho
4168c3cab9 gdk: be more selective resetting scroll events
It's been reported in several applications that scrolling feels jerky
since commit cc7b3985b3.

Investigation reported that the combination of passive 4-7 button grabs
on the toplevel and the presence of native subwindows might trigger
too often crossing events from the child window to the toplevel and
back as scroll "buttons" trigger the passive grab. Those crossing events
would reset the scroll valuators rendering scrolling from jerky on
touchpads (where there's intermediate smooth events between the emulated
button ones) to ineffective on regular mouse wheels (where the crossing
event would reset the valuators right before the single smooth scroll
event we get is delivered)

So, only reset scroll valuators when the pointer enters the toplevel
(we only care about this when the pointer is on the window after it's
been possibly scrolling somewhere else), and it doesn't come from an
inferior.

The situations where this happened varied though, the native subwindow
could be one created explicitly by the application, or created indirectly
through gdk_window_ensure_native(). The latter was mainly the case for
evolution (through gtk_selection_set_owner()) and any GtkScrolledWindow
under the oxygen-gtk3 theme (through gdk_window_set_composited())

https://bugzilla.gnome.org/show_bug.cgi?id=699574
2013-11-17 00:42:18 +01:00
Martin Renold
701daf2b05 gdk: Document event compression better
Advise against using GDK_POINTER_MOTION_HINT_MASK.
Add pointers to gdk_window_set_event_compression() to the documentation.
2013-11-16 01:50:53 +01:00
Matthias Clasen
2fb64cf0e7 Win32: Set the shows-desktop platform setting
Win32 shows icons on the desktop, so set shows-desktop
to TRUE here.
2013-11-15 07:51:22 -05:00
Matthias Clasen
b3f17ea915 Quartz: Set the shows-desktop platform setting
OS X shows icons on the desktop, so set this setting
to TRUE here.
2013-11-15 07:50:37 -05:00
Ryan Lortie
a90bb7de0e Add a GtkSetting for 'shell-shows-desktop'
Add a GtkSetting for whether the desktop shell is showing the desktop
folder icons.

This is on by default because most desktop shells do show the icons on
the desktop.  We already have a patch in gnome-settings-daemon to bind
this to the org.gnome.desktop.background show-desktop-icons GSettings
key which is off by default on GNOME.

https://bugzilla.gnome.org/show_bug.cgi?id=712302
2013-11-14 15:03:04 -05:00
Alexander Larsson
67bcc6f04f broadway: Improve touch events
We now respect core pointer grabs, and we do the pointer emulation
detection on the browser side.
2013-11-14 11:05:16 +01:00
Alexander Larsson
4226f97d54 broadway: Support ipad on-screen keyboard
We add a custom im module for broadway that calls some broadway
specific APIs to show/hide the keyboard on focus in/out. We then forward this
to the browser, and on the ipad we focus an input field to activate
the keyboard.
2013-11-13 12:23:06 +01:00
Alexander Larsson
ca89f5ab93 broadway: Send focus out events 2013-11-13 12:23:06 +01:00
Alexander Larsson
6917746c8e broadway: Fix focus handling with touch events 2013-11-13 12:23:06 +01:00
Chun-wei Fan
42bdbd8c30 gdk/win32/gdkevents-win32.c: Fix typo
...to fix the build on Windows.
2013-11-13 16:18:12 +08:00
Alexander Larsson
4e8fa55827 broadway: Support window resize/drag via touch 2013-11-12 16:45:14 +01:00
Alexander Larsson
82acc05cba broadway: Add initial touch event support
This seems to get something going on an ipad, but some events seem
to get swallowed. For instance, window dragging doesn't work.
2013-11-12 16:11:15 +01:00
Alexander Larsson
d21ac217d3 broadway: Disable all kinds of viewport scrolling and zooming 2013-11-12 13:44:56 +01:00
Alexander Larsson
e331d17626 broadway: Raise window on first click. 2013-11-12 12:36:05 +01:00
Alexander Larsson
d8c17d0739 broadway: Add raise/lower ops 2013-11-12 12:23:58 +01:00
Alexander Larsson
ddade66496 broadway: use 'click-to-focus' approach instead of 'focus-follows-mouse'
The broadway backend would move the focus from one window to another based on
where the mouse was (i.e. 'focus-follows-mouse' approach). Handling the focus
this wait didn't play well with widgets which rely on focus-in-event and
focus-out-event, like the GtkEntry when using a completion popup window, see
e.g:
  https://bugzilla.gnome.org/show_bug.cgi?id=708984

So instead, setup broadway to require a click in a window to move the focus
(i.e. 'click-to-focus' approach):

 * The implicit GDK_FOCUS_CHANGE events that were generated upon reception of
   BROADWAY_EVENT_ENTER or BROADWAY_EVENT_LEAVE are removed.

 * The broadway daemon will now keep track of which is the focused window

 * Whenever the daemon detects an incoming BROADWAY_EVENT_BUTTON_PRESS, it will
   trigger the focused window switch, which sends a new BROADWAY_EVENT_FOCUS to
   the client, specifying which windows holds the focus.

 * Upon reception of a BROADWAY_EVENT_FOCUS, the client will generate a new
   GDK_FOCUS_CHANGE.

 * gdk_broadway_window_focus() was also implemented, which now requests the
   focus to the broadway server using a new BROADWAY_REQUEST_FOCUS_WINDOW.

This is based on an initial patch from Aleksander Morgado <aleksander@lanedo.com>.
2013-11-12 12:03:50 +01:00
Owen W. Taylor
f50a3af1b7 Handle recursion from motion event handlers
If a motion event handler (or other handler running from the flush-events
phase of the frame clock) recursed the main loop then flushing wouldn't
complete until after the recursed main loop returned, and various aspects
of the state would get out of sync.

To fix this, change flushing of the event queue to simply mark events as
ready to flush, and let normal event delivery handle the rest.

https://bugzilla.gnome.org/show_bug.cgi?id=705176
2013-11-11 23:17:14 -05:00
Owen W. Taylor
fbfeb00545 Fix warning with event compression on a destroyed window
Fix a critical message when we try to compress events for a window
that was already destroyed.
2013-11-11 18:20:09 -05:00
Marc-André Lureau
c486c0983f gdk/win32: remove extra allocation for \r removal
Although I can't find explicit documentation for clipboard pointer, it
seems to be possible to modify clibpoard memory without side-effects.

According to MSDN,
http://msdn.microsoft.com/en-us/library/windows/desktop/aa366596%28v=vs.85%29.aspx

"The global and local functions are supported for porting from 16-bit
code, or for maintaining source code compatibility with 16-bit
Windows. Starting with 32-bit Windows, the global and local functions
are implemented as wrapper functions that call the corresponding heap
functions using a handle to the process's default heap."

"Memory objects allocated by GlobalAlloc and LocalAlloc are in private,
committed pages with read/write access that cannot be accessed by other
processes. Memory allocated by using GlobalAlloc with GMEM_DDESHARE is
not actually shared globally as it is in 16-bit Windows. This value has
no effect and is available only for compatibility. "

https://bugzilla.gnome.org/show_bug.cgi?id=711553
2013-11-09 11:58:03 -05:00
Daniel Sabo
80dd1a851a Add an event_compression setting to GdkWindow
Setting event compression to false will allow inter-frame
mouse motion events to be delivered, which are necessary
for painting applications to produce smooth strokes.

https://bugzilla.gnome.org/show_bug.cgi?id=702392
2013-11-09 00:01:05 -05:00
Alexander Larsson
180517f5e8 broadway: Add buffer decoding colorizing
If you add ?debug=decoding to the url you will get colorized debug
info for the buffer decoder.
2013-11-08 13:44:00 +01:00
Alexander Larsson
688b6e63b5 broadway: Extract buffer decoding to separate helper 2013-11-08 13:44:00 +01:00
Rico Tzschichholz
b851db113e broadway: Add rawinflate.min.js to EXTRA_DIST
In addition to 149b3af105
2013-11-07 17:44:08 +01:00
Alexander Larsson
149b3af105 broadway: Use zlib compression for broadway buffers
This imports the MIT licensed js unzip from:
https://github.com/imaya/zlib.js

and uses it to decompress in js on the client side.
2013-11-07 14:09:53 +01:00
Alexander Larsson
5ef114ba42 Switch from sending png frames to our own encoding
This is based on the rolling hashes code from
http://cgit.freedesktop.org/~krh/weston/log/?h=remote

It works by incrementally calculating hashes for every 32x32 block
in each frame sent, and then refering back to such blocks when
encoding the next frame. This means we detect when a block matches
an existing block in the previous frame in a different position.
This is great for detecting scrolling, which we need now that
the gdk level scrolling is neutered.
2013-11-07 14:09:53 +01:00
Alexander Larsson
bbfe7e0e69 broadway: Always use client side decorations 2013-11-07 14:09:53 +01:00
Alexander Larsson
c6a3c0e4eb broadway: Implement gdk_window_begin_move_drag() 2013-11-07 14:09:53 +01:00
Alexander Larsson
3be4038d02 broadway: Add gdkbroadwaydisplay.h include 2013-11-07 14:09:53 +01:00
Alexander Larsson
6e308dc7c7 broadway: Simplify frame handling and make it ARGB32
This completely removes the delta compression and makes all buffers ARGB.
This is obviously slower, but this will be re-integrated later.
2013-11-07 14:09:53 +01:00
Alexander Larsson
b436f06a94 broadway: Remove window translation code
This is no longer used as we neutered gdk_window_scroll & co.
2013-11-07 14:09:53 +01:00
Jasper St. Pierre
0a40951f40 Revert "broadway: Fix gcc warning"
This reverts commit f0d3d72574.
2013-11-05 11:14:01 -05:00
Benjamin Otte
f0d3d72574 broadway: Fix gcc warning 2013-11-04 16:36:11 +01:00
Manuel Bachmann
55dba74a24 Win32 : fixes Bug 679019 (Popup menu misplaced in dual monitor) 2013-11-01 17:59:05 +01:00
Cody Russell
46fbefe795 Win32: Honor the geometry when GDK_HINT_MAX_SIZE is set.
The MINMAXINFO struct was being populated based upon geometry hints when
GDK_HINT_MAX_SIZE flag was enabled, then promptly having its values blown
away with default values.

https://bugzilla.gnome.org/show_bug.cgi?id=711110
2013-10-31 15:54:28 -05:00
Jasper St. Pierre
e109f10017 broadway-server: Fix signedness issue 2013-10-31 12:20:04 -04:00
Manuel Bachmann
572e58123e Broadway : Replaced be32toh() with win32-compatible ntohl() 2013-10-31 00:43:58 +01:00
Jasper St. Pierre
ad59827ec8 Revert "wayland: Support always-on-top / sticky windows"
This reverts commit b3cffb85f3.

Pushed by accident.
2013-10-29 17:13:03 -04:00
Jasper St. Pierre
b3cffb85f3 wayland: Support always-on-top / sticky windows
Use the new gtk-shell APIs available in mutter to add support for this.

https://bugzilla.gnome.org/show_bug.cgi?id=710056
2013-10-28 18:03:26 -04:00
Jasper St. Pierre
1ace4b886d wayland: Always attach null surfaces on hide
Destroying the surface isn't really appropriate, as the GtkWindow
is still realized and we won't necessarily know how to reconstruct it.
2013-10-28 18:03:26 -04:00
Jasper St. Pierre
301d4ee681 wayland: Remove a useless else-if
We already check for impl->surface as the first branch we do.
2013-10-28 18:03:26 -04:00
Jasper St. Pierre
224822c831 wayland: Make the code here a bit clearer
By grouping the destroy and field clear together.
2013-10-28 18:03:26 -04:00
Jasper St. Pierre
84e3aa016f wayland: Ensure we keep our internal state when hiding a window with no surface
We need to keep track of the mapped variable here.
2013-10-28 18:03:26 -04:00
Matthias Clasen
c46aca463a Respect deprecated button images setting
I have been convinced that it is a bad idea to change the behaviour
at the same time as deprecating it, so go back to respecting the
Gtk/ButtonImages xsetting in buttons created with
gtk_button_new_from_stock() when it is set.

The setting as well as the function are still deprecated, and the
default value of the setting will remain FALSE.
2013-10-24 20:35:55 -04:00
Matthias Clasen
627a03683f Respect deprecated menu images setting
I have been convinced that it is a bad idea to change the behaviour
at the same time as deprecating it, so go back to respecting the
Gtk/MenuImages xsetting in GtkImageMenuItem when it is set.

The setting as well as the widget are still deprecated, and the
default value of the setting will remain FALSE.
2013-10-24 20:03:02 -04:00
Olivier Brunel
e735da37f6 Fix key "Page_Down" identified as "Next"
Since 49c4ad2f the order between "Page_Down" & "Next" had been changed (due to
sorting) and this resulted in the Page Down key being identified as "Next"
instead of "Page_Down"

"Page_Up" wasn't affected, since it comes before "Prior"

Signed-off-by: Olivier Brunel <jjk@jjacky.com>

https://bugzilla.gnome.org/show_bug.cgi?id=710411
2013-10-24 18:48:33 -04:00
Bastien Nocera
438cd857c4 all: Add names to timeouts
Add names to every timeout we setup, so it's easier to track their
usage, and debug possible misbehaviour.

https://bugzilla.gnome.org/show_bug.cgi?id=710651
2013-10-23 13:31:18 +02:00
Jasper St. Pierre
809aab2c8e gdkwindow-x11: Don't set WM_TAKE_FOCUS if accept_focus is FALSE
Otherwise, we'll be in the "Globally Active" mode instead of the
"No Input" mode.

https://bugzilla.gnome.org/show_bug.cgi?id=710389
2013-10-21 13:43:14 -04:00
Bastien Nocera
c4c11a165d gdkevents.h: Mention _get_source_device()
It's too easy getting bitten by the ->device red herring, thinking
that it's the original input device the event originated from.

https://bugzilla.gnome.org/show_bug.cgi?id=709621
2013-10-15 21:31:53 -04:00
Matthias Clasen
0db75c6b10 Wayland: avoid accidental export of internal symbols
Some symbols in the generated Wayland code were getting
decorated with WL_EXPORT, causing them to show up in the
libgdk exports. We don't want that.

https://bugzilla.gnome.org/show_bug.cgi?id=710141
2013-10-15 19:44:49 -04:00
Matthias Clasen
73bae5b816 Wayland: fix a crash in opaque region handling
We may get a NULL region passed to the backend, which means
'nothing is opaque'. In that case, don't crash, but pass
the information on to the compositor.

http://bugzilla.gnome.org/show_bug.cgi?id=709854
2013-10-15 18:21:44 -04:00
Charles Reiss
4cf5ce2e08 Bug 709939 - monitor reconfiguration while GtkOffscreenWindows
exist triggers crash on quartz. Special case the position update
to ignore the off-screen windows.
2013-10-11 15:53:37 -07:00
Matthias Clasen
259c3c3699 Quell a compiler warning 2013-10-11 16:27:43 -04:00
Philip Chimento
0e4bac872c NULL check on default keymap
Ensure that Quartz's default keymap is not accessed before it is
created.
2013-10-11 11:14:32 -07:00
Hamish Mackenzie
d9cfe40aeb Fix infinite loop in gdkevents.c _gdk_event_queue_find_first 2013-10-11 11:06:23 -07:00
John Ralls
cf66cf906e Ensure src and dest are GdkWindows in _gdk_sythesize_crossing_events
Discovered via a crash because b's (dest's) toplevel was NULL;
ensuring that the dest is actually a GdkWindow or setting b to NULL
prevents that path from being taken.
2013-10-11 10:54:15 -07:00
John Ralls
46838a2fe2 Suppress frequent device assertions
Because send crossing event is usually called with a NULL source_device in quartz.
2013-10-10 15:37:27 -07:00
John Ralls
f86dc163b9 Quartz: Set the drag context target list
So that gdk_drag_context_list_targets() actually returns something.
2013-10-10 15:37:27 -07:00
Jasper St. Pierre
ddb4034e8e Fix GI warnings 2013-10-09 14:19:54 -04:00
Jasper St. Pierre
d7417580b7 broadway: Don't bother memdup-ing
If we're going to run off the end due to an invalid message,
we're going to run off the end. We'll protect this by doing
proper bounds checking in the future, but the malloc gives
us nothing for now.
2013-10-07 16:19:01 -04:00
Jasper St. Pierre
0d0ff40d2f broadway: Use a binary protocol to send to the server
This makes the protocol easier to inspect over the wire and makes all
commands fixed-length.
2013-10-07 16:19:01 -04:00
Jasper St. Pierre
eb1ab0dac2 broadway: Remove authentication support 2013-10-07 16:19:01 -04:00
Jasper St. Pierre
f2e30144f8 broadway: Remove support for old browsers
Require binary array buffers and modern WebSocket protocol support.
2013-10-07 16:19:01 -04:00
Lionel Landwerlin
e62a6dfdbc GdkWindowX11: Prevent non renderered window to be display by the compositor
When mapping a window for the first time, make sure the compositor
won't display it until we're done painting.

https://bugzilla.gnome.org/show_bug.cgi?id=702196
2013-09-26 22:16:53 +01:00
Benjamin Otte
3d7e0f3eb1 gdkcairo: Actually paint the pixbuf
I accidentally a line before committing
b41787bc78 - whoops.
2013-09-24 17:43:44 +02:00
Benjamin Otte
b41787bc78 gdkcairo: Don't require gtk_init() for set_source_pixbuf()
Instead of using the default display's root window's surface, use the
target surface of the passed in cairo_t to create the similar image from.

https://bugzilla.gnome.org/show_bug.cgi?id=708547
2013-09-24 16:42:48 +02:00
Benjamin Otte
1959e36066 gdkcairo: Split out a function
This is in preparation for the next patch.
2013-09-24 16:42:48 +02:00
Matthias Clasen
97acd7abb1 Introduce version macros for 3.12 2013-09-23 18:55:28 -04:00
Matthias Clasen
4b13b93394 Improve struct packing in GdkWindowImplWayland 2013-09-21 23:50:55 -04:00
Matthias Clasen
41f8ad5384 Document some Wayland apis 2013-09-17 01:16:13 -04:00
Matthias Clasen
5d33a7cb18 Trivial formatting fixes 2013-09-17 01:13:31 -04:00
Matthias Clasen
ca40ad1b1a Documentation fixes 2013-09-17 01:13:03 -04:00
Matthias Clasen
11ad337a29 Avoid a segfault when menus are re-shown under Wayland
The surface is destroyed when we hide a window, but
gdk_window_set_opaque_region can be called before the window is
shown again, so we need to ensure the surface exits.

https://bugzilla.gnome.org/show_bug.cgi?id=707328
2013-09-16 19:01:48 -04:00
Matthias Clasen
67f05b995f Trivial formatting fixes 2013-09-16 18:15:57 -04:00
Matthias Clasen
1b93b55b60 Revert "Try Wayland before X11"
This reverts commit 04d6d622d5.

clutter and clutter-gtk are not quite ready to deal with this
change, so lets keep the order unchanged for 3.10 and revisit
next cycle.

https://bugzilla.gnome.org/show_bug.cgi?id=707704
2013-09-16 08:24:39 -04:00
Carlos Garcia Campos
9dbc19ea17 gdkdisplay-x11: Do not pass a NULL source device to _gdk_display_device_grab_update
Pass the master device instead if the last slave is NULL. This is
unlikely to happen in most of the cases, but can happen when running
unit tests where there's no pointer interaction to update the last
slave.

https://bugzilla.gnome.org/show_bug.cgi?id=696756
2013-09-16 12:47:38 +02:00
Rico Tzschichholz
13e843b7d7 wayland: Fix make dist
In addition to d34335e51c
2013-09-11 17:20:55 +02:00
Lionel Landwerlin
659a6f3a2f gdk: event: add get_window() method
https://bugzilla.gnome.org/show_bug.cgi?id=707844
2013-09-10 11:38:38 +01:00
Claudio Saavedra
0735aa1c2e gdk_pixbuf_get_from_source: only reuse surfaces with matching format
Otherwise the conversion functions will return rubbish.

https://bugzilla.gnome.org/show_bug.cgi?id=707445
2013-09-06 18:50:07 +03:00
Behdad Esfahbod
10601b833a [gdkcairo] Fix color premultiplication
https://bugzilla.gnome.org/show_bug.cgi?id=513812
2013-09-05 18:42:45 -04:00
Alexander Larsson
854f5818f8 Sync with changes in the cairo device-scale handling
The version of device scale that landed in upstream cairo
master already inherits the device scale in cairo_create_similar,
so no need to do that in gtk anymore.
2013-09-05 19:30:23 +02:00
Jasper St. Pierre
29dda194bb gdkwindow-x11: Multiply opaque region rects by the window scale
This fixes rendering issues under HiDPI
2013-09-04 14:45:54 -04:00
Jasper St. Pierre
c6de1cd6b9 gdkframeclockidle: Add explicit fallthrough markers
So people reading the code don't get confused.
2013-09-03 17:59:19 -04:00
Colin Walters
0697cbb88c build: Fix srcdir != builddir with wayland-client-protocol.h
In the gnome-ostree model builddir contains all generated files not in
git (unless the build system explicitly overrides that).  Here the
wayland-client-protocol.h was in $(builddir)/wayland, so we need to
find it using our already extant -I$(top_builddir)/gdk, rather than
relying on same-directory lookup.
2013-09-03 17:52:38 -04:00
Giovanni Campagna
3c5d9d6889 wayland: set the wm_class on toplevel windows
Before mapping the window, set the title and class, to allow
application tracking by gnome-shell.

https://bugzilla.gnome.org/show_bug.cgi?id=707129
2013-09-03 17:03:43 +02:00
Giovanni Campagna
7f8bf41633 gtk-shell: extend the protocol with shell capabilities
Add the concept of shell capabilities, which allow the compositor
to advertise support for the app menu and the global menubar,
which are then propagated as GdkSettings.

https://bugzilla.gnome.org/show_bug.cgi?id=707129
2013-09-03 17:03:43 +02:00
Giovanni Campagna
ed9f55d521 wayland: restore support for the application menu
If the compositor supports the gtk-shell interface, use it to
export the application ID, dbus name and paths that can be used
for the application menu.

https://bugzilla.gnome.org/show_bug.cgi?id=707129
2013-09-03 17:03:43 +02:00
Giovanni Campagna
d34335e51c wayland: add support for a private gtk-shell protocol
This protocol will be used by mutter-wayland and gtk to replace
the _GTK X11 properties for DBus names/paths.

https://bugzilla.gnome.org/show_bug.cgi?id=707129
2013-09-03 17:03:43 +02:00
Jasper St. Pierre
f07d113098 gdkwindow-x11: Correct math for filling in the _NET_WM_OPAQUE_REGION property
This fixes incorrect rendering under mutter and other WMs that implement
_NET_WM_OPAQUE_REGION.
2013-08-31 13:21:09 -04:00
Pavel Vasin
832e77fbb4 GdkWaylandWindow: Fix memory leak
https://bugzilla.gnome.org/show_bug.cgi?id=706493
2013-08-31 12:28:20 -04:00
Christian Hergert
5add9625e2 wayland: fix crash in gdk_window_wayland_get_root_coords().
Both root_x and root_y may be NULL, so check first before setting.
2013-08-30 00:39:18 -07:00
Emilio Pozuelo Monfort
7761e99558 wayland: trust the compositor to always send a good serial number
https://bugzilla.gnome.org/show_bug.cgi?id=706870

Signed-off-by: Emilio Pozuelo Monfort <emilio.pozuelo@collabora.co.uk>
2013-08-28 18:18:39 +01:00
Jasper St. Pierre
08fbba4558 gdk: Add opaque region setters
https://bugzilla.gnome.org/show_bug.cgi?id=706922
2013-08-28 10:33:57 -04:00
Benjamin Otte
6318e5e5d1 x11: Fix compiler warning 2013-08-27 16:03:55 +02:00
Alexander Larsson
576ae1e3c9 GdkScreen: Return 1, not 1.0 for the (int) scale factor 2013-08-26 21:17:45 +02:00
Chun-wei Fan
bd59614490 gdk/win32/gdkdevice-virtual.c: Various fixes
...for the gdk_cursor_new_from_surface work (commit b2113b73) where the
types of some parameters were changed, and also to silence a critical
GDK_IS_DEVICE when a menu item is selected (courtesy of LE GARREC Vincent
from bug 696756).

https://bugzilla.gnome.org/show_bug.cgi?id=705980
2013-08-26 10:30:13 +08:00
Chun-wei Fan
0e01f9cc9c GDK/GTK on Windows: Fix build
Due to the work on gdk_cursor_new_from_surface (commit b2113b73),
get_cursor_for_pixbuf() in GdkDisplayClass was converted to
get_cursor_for_surface(), which means the GDK Win32 backend needs to be
updated for the code to build and run on Windows, plus some function
prototypes and declarations/calls need to be updated as well.

https://bugzilla.gnome.org/show_bug.cgi?id=705980
2013-08-26 10:29:23 +08:00
Kristian Høgsberg
771dbe0592 wayland: Compare serial numbers correctly to avoid overflow problems
We have to look at the difference between two numbers, which will always
be well-defined and give the right result, even in case of integer overflow.
2013-08-23 23:15:53 -07:00
Kristian Høgsberg
384a4e6ddb wayland: Use current serial when setting selection, not _wl_time_now()
The wl_data_device.set_selection request expects a serial number.
2013-08-23 23:15:53 -07:00
Kristian Høgsberg
56ac58c584 wayland: wl_data_device.enter provides a serial number, not a timestamp 2013-08-23 23:15:53 -07:00
Matthias Clasen
13f6552a7e x11: Add EWMH workspace handling api
Add a few functions that give access to the EWMH workspace
properties.
2013-08-24 00:51:56 -04:00
Alexander Larsson
78dae73a30 x11: Add gdk_x11_display_set_window_scale
This lets you force a specific window scale, this is needed
for mutter to be able to disable the scaling as it needs access
to unmangled X window/screen sizes. It can also be useful to
force a specific scale in e.g. tests.
2013-08-20 11:15:08 +02:00
Alexander Larsson
66f1deef40 Enforce a fixed scale of 1 if no cairo scale support
We used to just follow the default, which would pick up scale
changes from xsettings, but that is not right if we can't
actually support scales.
2013-08-20 10:29:45 +02:00
Juan Pablo Ugarte
497f25730d gdk_window_raise (): Do not invalidate toplevel windows. 2013-08-19 08:30:40 -03:00
Matthias Clasen
f8412eca34 Revert "Deprecate and ignore the cursor blink settings"
This reverts commit b2e666bf8f.

We need to keep cursor blinking configurable for accessibility
reasons.

https://bugzilla.gnome.org/show_bug.cgi?id=704134

Conflicts:
	gdk/win32/gdkproperty-win32.c
	gdk/x11/gdksettings.c
	gtk/gtksettings.c
	gtk/gtktextview.c
2013-08-16 22:45:13 -04:00
Ek Kato
08042ea830 Bug 705750 Quartz input method doesn't work correctly for Chinese characters
Modified from original for Gtk3.
2013-08-16 11:18:29 -07:00
Chun-wei Fan
ee0b0fa482 Bug 702144: Make gdkwin32.h a pure include-only header
Move all the system includes, defines and function prototypes into a
separate header gdkwin32misc.h, so that we could keep gdkwin32.h as simple
as possible.
2013-08-14 08:13:32 +08:00
Chun-wei Fan
9072be16a4 gdk/win32/gdkdevice-virtual.c: Don't Use Deprecated APIs
...this was split into two commits as this source file has different
line endings (for some reason) from the other GDK-Win32 source files that
were updated in the quest to refrain from using deprecated APIs
2013-08-14 08:04:50 +08:00
Chun-wei Fan
ae79dd7068 GdkWin32: Avoid Using Deprecated API
Update the Win32 GDK backend to not use the deprecated GDK APIs.

https://bugzilla.gnome.org/show_bug.cgi?id=705068
2013-08-14 08:03:19 +08:00
Matthias Clasen
7d48c3b2c7 Add a function to get the event type
This is useful for language bindings, who can't easily
access the struct field directly.

https://bugzilla.gnome.org/show_bug.cgi?id=700029
2013-08-13 19:06:48 -04:00
Ek Kato
40c429c2cb Bug 705181 Annoying beep on arrow keys
Original patch was a bit excessive, just needed to not forward the command.
2013-08-13 11:16:03 -07:00
Jasper St. Pierre
8818d8a19b gtkwindow: Export our custom frame extents
This allows CSD windows to be maximized, tiled, and constrained
properly.

https://bugzilla.gnome.org/show_bug.cgi?id=705765
2013-08-13 10:38:49 -04:00
Benjamin Otte
129fc6ea3a x11: Remove dead assignment 2013-08-13 16:25:27 +02:00
Matthias Clasen
87257342de Fix a crash with scaled cursors on Wayland
We need to initialize cursor->surface.scale to 1, since we
are dividing by it in _gdk_wayland_cursor_get_buffer.
2013-08-11 15:38:25 -04:00
John Ralls
dfbd0c2b98 Implement gdk_display_get_cursor_for_surface in quartz
Left out of b2113b7, breaking quartz build
2013-08-11 10:43:48 -07:00
John Ralls
31c2e95cbd Bug 701571 NSApp doesn't notice NSWindow destruction
Part 1 of the fix; part 2 awaits Glib developer approval (see
https://bugzilla.gnome.org/show_bug.cgi?id=704374) and is more
correctly associated with
https://bugzilla.gnome.org/show_bug.cgi?id=674108
2013-08-11 10:43:47 -07:00
Matthias Clasen
04d6d622d5 Try Wayland before X11
When both the Wayland and the X11 backends are built, prefer
Wayland over X11 in the absence of other information.

https://bugzilla.gnome.org/show_bug.cgi?id=705498
2013-08-09 20:50:57 -04:00
Matthias Clasen
2cdc5d440a Fix up docs for new cursor apis
The docs for gdk_cursor_new_from_surface were talking about
pixbufs. And the new APIs were not appearing in the docs
at all yet.
2013-08-09 20:24:44 -04:00
Daniel Sabo
a1955e8d88 Reset cursor when mouse leaves a toplevel window.
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=692548
2013-08-08 09:38:09 -05:00
Alexander Larsson
b2113b7384 gdk: Add gdk_cursor_new_from_surface
We need this to be able to handle scaled cursor images.
We implement the new _from_pixbuf by converting to a surface and
assuming the scale was 1.
2013-08-07 13:34:10 +02:00
Alexander Larsson
71fe43543c gdk: Add gdk_cursor_get_surface()
We want a surface so we can properly represent the scale factor for it.
All backends are converted to use surfaces and we reimplement the
backwards compat code in the generic code.
2013-08-07 13:34:10 +02:00
Alexander Larsson
54f5e4af53 gdk_pixbuf_get_from_surface: Avoid copying if source is image surface
If the source surface is an image surface we don't need to coerce
it to one.
2013-08-07 13:34:10 +02:00
Rob Bradford
a4d9e92f66 wayland: Dispatch pending events before entering poll
If we don't dispatch the pending events then we can enter poll with events
still requiring to be processed and which can then lead to us deadlocking
there.
2013-08-04 14:42:14 +01:00
Rob Bradford
a8fc099a72 wayland: Only try and process keyboard events when focussed
When combining Clutter with GTK+ we can receive events for surfaces which in
the client side we do not have focussed.
2013-08-04 14:42:14 +01:00
Rob Bradford
3625f17857 wayland: Only try and process pointer events when focussed
When combining Clutter with GTK+ we can receive events for surfaces which in
the client side we do not have focussed.
2013-08-04 14:42:14 +01:00
Rob Bradford
e8e6ae8189 wayland: Only process the event if it's for a GdkWindow
When we combine GTK with Clutter we will receive events for both surfaces that
we have created as well as those created by Clutter.
2013-08-04 14:42:14 +01:00
Matthias Clasen
0d999c626f Wayland: Add a missing break statement
Found by the clang static analyzer.
2013-08-04 01:27:39 +02:00
Alexander Larsson
3a0b65c5b9 x11: send monitors-changed when screen scale changes 2013-08-03 16:53:46 +02:00
Alexander Larsson
9237da2e57 x11: Update root window scale when the screen scale changes 2013-08-03 16:53:46 +02:00
Jasper St. Pierre
55edb3e2b1 gdkkeys-x11: Remove workaround code for Sun Microsystems X server
Xsun is no longer shipped to customers, and Oracle/Sun's Xorg distribution
uses "Sun Microsystems" as the vendor name, so this hack is incorrect in
the more common recent cases.
2013-08-02 09:03:10 -04:00
Chun-wei Fan
dcb766c461 Add Visual Studio Build Support for Broadway
-Add Visual Studio 2008 projects and pre-configured gdkconfig.h for
 Broadway builds
-Decouple the Visual Studio property sheets, to simplify maintenance and
 enhance flexibility for different builds

Visual Studio 2010 projects updates will follow later.
2013-08-02 11:20:19 +08:00
Benjamin Otte
7f01641280 x11: Don't crash when NULL eometry hints are set
Fixes crashers in gnome-panel.
2013-07-31 03:03:09 +02:00
Michael Hutchinson
a78643bd6f Bug 705181: Fix annoying beeping introduced by Mac IME
NSTextInputClient should not chain unhandled commands to super

(cherry picked from commit 91bcca6f39)
2013-07-30 17:27:10 -07:00
Matthias Clasen
77a20871ff X11: Fix the cut-off for too large windows
We can only handle 2^15-1 pixels, not 2^16-1.
Pointed out by Morten Welinder.

https://bugzilla.gnome.org/show_bug.cgi?id=698758
2013-07-29 20:51:39 -04:00
Murray Cumming
330f51978d docs: Minor grammatical corrections. 2013-07-29 11:51:33 +02:00
Ek Kato
fbfce31889 Bug 701332 - Patch for minor glitch in NSTextInput
(cherry picked from commit 43ed68aa33)
2013-07-27 14:09:55 -07:00
Rob Bradford
16e43733b9 wayland: Create a cairo surface for the root window
Many parts of GTK+ assume that all windows have a cairo surface
assoicated with them. This change provides a logically 1x1 cairo surface
(respecting scale) for the root window.

https://bugzilla.gnome.org/show_bug.cgi?id=704554
2013-07-24 18:30:19 +01:00
Owen W. Taylor
c7574bb6c8 Disable frame sync for GtkPlug
Plug windows weren't redrawing properly because the embedded
window was expecting to get messages for each frame from the
compositor, but the compositor doesn't know about embedded
windows. Simply disable frame sync for GtkPlug's GdkWindow -
extending XEMBED to handle frame sync isn't interesting
at this point.

A new API gdk_x11_window_set_frame_sync_enabled() is added
to allow this to be done.

https://bugzilla.gnome.org/show_bug.cgi?id=701613
2013-07-22 18:36:58 -04:00
Erik van Pienbroek
4c2d461286 Fix prototype of gdk_device_win32_warp
https://bugzilla.gnome.org/show_bug.cgi?id=704171
2013-07-22 14:23:59 +02:00
Chun-wei Fan
ce30d16da1 gdk/gdkoffscreenwindow.c: Include fallback-c89.c
This is necessary as we are using round() here, which is not universally
available.
2013-07-19 18:33:42 +08:00
Matthias Clasen
a74d394738 Add AudioMicMute
This keysym was recently added to XF86keysym.h.
2013-07-17 17:52:19 -04:00
Jasper St. Pierre
e08f074bd2 gdkkeysyms-update: Remove workarounds for old bugs 2013-07-17 16:40:05 -04:00
Jasper St. Pierre
585bee3fa7 gdkkeysyms-update: Just overwrite gdkkeysyms.h 2013-07-17 16:27:49 -04:00
Giovanni Campagna
047d60e797 gdk/wayland: cope with the compositor implementing an older protocol than us
If we bind to a global with an higher version than implemented, or
we make requests that appeared in a later version, we would get
fatal wayland errors.

https://bugzilla.gnome.org/show_bug.cgi?id=704104
2013-07-16 18:19:08 +02:00
William Hua
947385ebae Bug 704216: Fix prototype for gdk_quartz_device_core_warp. 2013-07-15 10:18:22 -07:00
William Jon McCann
57fc8763e9 Deprecate and ignore the timeout-initial and timeout-repeat settings 2013-07-11 17:08:15 -04:00
Matthias Clasen
f636a2668b Don't segfault when setting opacity on an offscreen window
This was causing the treeview tests to fail.
2013-07-09 20:05:46 -04:00
Rob Bradford
af26a18032 wayland: Handle the display connection erroring out
wl_display_flush or wl_display_dispatch can return -1 if there is an
error on the display connection.

https://bugzilla.gnome.org/show_bug.cgi?id=703892
2013-07-09 18:52:56 -04:00
Kristian Høgsberg
99b78fdd7f wayland: Don't clear revents until we've checked for G_IO_HUP
https://bugzilla.gnome.org/show_bug.cgi?id=703892
2013-07-09 18:38:32 -04:00
Rob Bradford
0dbd9dc0a7 wayland: request appropriate compositor version to support buffer scale
With the introduction of the use of buffer scaling in ed4fcee4ct we
must request version 3 of the compositor as that is the version of the
surface interface that adds this new functionality. See the following
commit in weston:

commit a85118c1b85df6fbf8f896dca971a5b79a94da71
Author: Jason Ekstrand <jason@jlekstrand.net>
Date:   Thu Jun 27 20:17:02 2013 -0500

    Use wl_resource_create() for creating resources

    This commit sets the version numbers for all added/created objects.  The
    wl_compositor.create_surface implementation was altered to create a surface
    with the same version as the underlying wl_compositor.  Since no other
    "child interfaces" have version greater than 1, they were all hard-coded to
    version 1.

    Signed-off-by: Jason Ekstrand <jason@jlekstrand.net>

https://bugzilla.gnome.org/show_bug.cgi?id=703817
2013-07-09 10:11:58 +01:00
Emmanuele Bassi
9f2ca8d851 gdk: Use new macros for defining private data
Drop the g_type_class_add_private() function, and use the macros
instead.

https://bugzilla.gnome.org/show_bug.cgi?id=702996
2013-07-09 09:28:49 +01:00
Jürg Billeter
7f9f3aad5a wayland: Fix build due to missing symbol export
https://bugzilla.gnome.org/show_bug.cgi?id=703765
2013-07-09 07:09:13 +02:00
William Jon McCann
7b66956e63 Deprecate and hardcode default toolbar icon size setting
Toolbar icon size can still be changed on a per-widget basis as
needed by the application developer.
2013-07-08 15:02:28 -04:00
William Jon McCann
425e977bb6 Deprecate and hardcode default toolbar style setting
Toolbar style can still be changed on a per-widget basis as
needed by the application developer.
2013-07-08 15:02:28 -04:00
William Jon McCann
c9bfd12d2f Deprecate and hardcode the value of visible-focus setting
Just use the default value of AUTOMATIC and make it just work.
2013-07-08 15:01:33 -04:00
Rob Bradford
d2ba7d75c3 wayland: Create the Wayland surface for the window on impl creation
Ths allows the retrieval of the wl_surface before the window is shown.
The surface is still created in the original places since the surface
and shell surface is destroyed when the surface is programmatically
hidden.
2013-07-03 16:26:00 +01:00
Michael Forney
ce9f232eb8 wayland: Fix typo in setting of core_pointer
This typo caused the display's core_pointer to be set only if the mouse
was first in the device list.

https://bugzilla.gnome.org/show_bug.cgi?id=703434
2013-07-03 15:24:50 +01:00
Alexander Larsson
83c5e354bd wayland: Add custom create_similar_image implementation
The fallback method is used on other backends, but it caused
problems for wayland when it tried to create a surface for
the root window.
2013-07-03 16:03:25 +02:00
Alexander Larsson
e8b38fedbd gdk: Convert mouse position to doubles, add new getters
We've long had double precision mouse coordinates on wayland (e.g.
when rotating a window) but with the new scaling we even have it on
X (and, its also in Xinput2), so convert all the internal mouse/device
position getters to use doubles and add new accessors for the
public APIs that take doubles instead of ints.
2013-07-03 14:39:25 +02:00
Alexander Larsson
867ba1df27 x11: Don't follow dpi and scale from xsettings when GDK_SCALE set
If things are hardcoded in the environment, that wins.
2013-07-03 14:36:05 +02:00