Commit Graph

36231 Commits

Author SHA1 Message Date
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
Marek Kasik
118b09c68c printing: Fix memory leak when listing Avahi printers
Return values of g_variant_get_child_value() were not unreffed
correctly together with one value returned by g_variant_get().
Use g_variant_get_data() instead of copying each byte separately.

https://bugzilla.gnome.org/show_bug.cgi?id=712799
2013-11-25 10:27:39 +01:00
Manuel Bachmann
543b840a80 Broadway - Fix UNIX/Win32 detection
Finally fix this check so unnecessary headers aren't needed.
2013-11-25 04:51:29 +01:00
Benjamin Otte
8765269478 tests: Add max-width-chars to testwindowsize test 2013-11-25 03:56:21 +01:00
Benjamin Otte
4e9356f339 menu: Do a proper min height request
The minimum height is the size of one menu item plus the arrows, not the
minimum size of all menu items.

https://bugzilla.gnome.org/show_bug.cgi?id=691974
https://bugzilla.gnome.org/show_bug.cgi?id=694859
2013-11-25 03:54:05 +01:00
Benjamin Otte
f18655c641 window: Don't assume 640x480 max default size
Instead, use the monitor's work area.

This might have unforseen side effects that warrant a later revert, such
as:
- Apparently some WMs assume maximizing when a window is maximum screen
  size.
- WMs might not shrink the window by the decorations' size when it tries
  to be fullscreen.
- Applications might have buggy size request code that causes weirdly
  sized windows.
2013-11-25 03:49:35 +01:00
Benjamin Otte
8308f4c1e9 stack: Fix crash on g_object_get("visible-child")
priv->visible_child is not a GtkWidget but a custom struct holding the
widget. So use the getter instead.
2013-11-25 03:49:35 +01:00
Benjamin Otte
46ed450a29 treemenu: Implement height-for-width properly 2013-11-25 03:49:35 +01:00
Philip Withnall
9d7a442b8b testsuite: Fix potential strcmp() against NULL
Use g_strcmp0() instead.

Found by scan-build.

https://bugzilla.gnome.org/show_bug.cgi?id=712760
2013-11-24 21:21:46 +00:00
Philip Withnall
ada766025f gtktreeviewaccessible: Fix a potential division by zero
Found with scan-build.

https://bugzilla.gnome.org/show_bug.cgi?id=712760
2013-11-24 21:21:02 +00: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
Emmanuele Bassi
34fd1234a6 pixbuf-engine: Clean up error conditions and destructors
Simplify the error checks and move all common behaviour into a utility
function.

https://bugzilla.gnome.org/show_bug.cgi?id=712536
2013-11-22 22:17:07 -05:00
Emmanuele Bassi
01dfd8bb6e pixbuf-engine: Improve ThemePixbuf clean up functions
Make theme_pixbuf_destroy() NULL-safe like g_free(), and add a clear
function in the spirit of the g_clear_* family of functions.

https://bugzilla.gnome.org/show_bug.cgi?id=712536
2013-11-22 22:17:07 -05:00
Jehan
0d396abf22 Themes with specified gap images but no actual file crash.
https://bugzilla.gnome.org/show_bug.cgi?id=712536
2013-11-22 22:17:07 -05: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
Tim Lunn
189b9c643d build: bump requirement on gobject-introspection to 1.39.0
https://bugzilla.gnome.org/show_bug.cgi?id=713044
2013-11-22 07:18:54 +11: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
Marek Kasik
376e2c003d printing: Don't wake up Avahi printers unnecessarily
Use info available in Avahi TXT records for creation of gtk printer
and request details when needed (through gtk_printer_request_details()).
If there is a printer advertised on Avahi by a remote CUPS server
try to get its PPD file at first or get its capabilities through an IPP
request if it fails.

https://bugzilla.gnome.org/show_bug.cgi?id=712751
2013-11-21 15:44:45 +01:00
Carlos Garnacho
da86918c32 combobox: Set GDK_SCROLL_MASK on the eventbox in appears-as-list mode
This is so the scroll wheel works in both modes, and there's no behavioral
change depending on a style property.

https://bugzilla.gnome.org/show_bug.cgi?id=702663
2013-11-20 13:18:37 +01: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
da0ebcb7da Revert "stack: respect gtk-enable-animations setting"
It already respected enable-animations.

This reverts commit fb9ff44299.
2013-11-19 18:38:56 -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
Jonh Wendell
7b85d1df50 treeview: Use CSS property "border-top-color" to draw grid lines
This allows themes to customize the grid line colors in treeviews.

https://bugzilla.gnome.org/show_bug.cgi?id=415415
2013-11-19 10:24:28 -02:00
Matthias Clasen
fb9ff44299 stack: respect gtk-enable-animations setting
https://bugzilla.gnome.org/show_bug.cgi?id=712632
2013-11-18 23:19:27 -05:00
Christian Persch
bf9ed44aa6 revealer: Respect gtk-enable-animations setting
https://bugzilla.gnome.org/show_bug.cgi?id=712632
2013-11-18 23:01:11 -05:00
Matthias Clasen
ecb05f0c0a Bump version 2013-11-18 20:59:05 -05:00
Matthias Clasen
8272b7d0d9 3.11.2 2013-11-18 20:30:55 -05:00
Benjamin Otte
6524d0b83d reftests: Fix rendering issues with border-image reftest
When downscaling images, Cairo apparently uses algorithms different
enough to make this test trip over. So add the downscaled image as the
reference instead of downscaling the previous reference image.

Fixes the border-image reftest. For real now.
2013-11-19 02:29:48 +01:00
Benjamin Otte
542bd31d00 reftests: Fix border-image-repeat test
The new downscaling code in Cairo doesn't allow this test, so we remove
the CSS that made the border downscaled.

So the test does test less now, but it still tests the repeat modes of
border images.
2013-11-19 02:29:48 +01: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
Matthias Clasen
df455db2e3 GtkBuilder: Make IDs optional
One requirement of .ui files is that each object must have an ID,
even if it is never referred to or directly loaded from the code.
This makes editing .ui files much more onerous than it has to be,
due to the frequent need to invent new IDs, while avoiding
clashes.

This commit makes IDs optional in the XML. They only need to
be provided for objects which are referred to or explictly loaded
from the code. Since GtkBuilder needs IDs for its own internal
accounting, we create IDs of the form ___object_N___ if not
specified in the XML.

https://bugzilla.gnome.org/show_bug.cgi?id=712553
2013-11-18 06:00:02 -05:00
Matthias Clasen
c7870385c3 Document GTK_THEME 2013-11-18 05:59:13 -05:00
Yosef Or Boczko
d6c0f5438a Fix doc build 2013-11-18 02:31:43 +02:00
Jasper St. Pierre
55605fe685 gtkwindow: Fix cast warning 2013-11-17 18:50:53 -05:00
Jasper St. Pierre
1941f3ff17 gtkwidget: Fix up some deprecation warnings 2013-11-17 18:50:53 -05:00
Piotr Drąg
6a44fca43a Updated POTFILES.skip 2013-11-17 18:56:32 +01: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
Matthias Clasen
d297500976 Use window icons for fallback
When the window has an icon, use it for the fallback menu
button.
2013-11-16 17:04:30 -05:00
Matthias Clasen
055e4722f5 Add the new exampleapp to the docs 2013-11-16 17:04:30 -05:00
Matthias Clasen
7265d9d9ad Add another example application
This new step sets the headerbar as titlebar, and enables
fallback for the app menu.
2013-11-16 16:09:56 -05:00
Matthias Clasen
07d71cf945 Small doc improvements 2013-11-16 15:00:16 -05:00