]> Pileus Git - ~andy/gtk/log
~andy/gtk
11 years agox11: Use gdk_display_flush()
Benjamin Otte [Fri, 15 Feb 2013 21:26:45 +0000 (22:26 +0100)]
x11: Use gdk_display_flush()

11 years agox11: Get selection atom useing GDK functions
Benjamin Otte [Fri, 15 Feb 2013 19:06:56 +0000 (20:06 +0100)]
x11: Get selection atom useing GDK functions

Don't call XInternAtoms ourselves.

11 years agox11: Warning improvements to xsettings code
Benjamin Otte [Fri, 15 Feb 2013 18:18:11 +0000 (19:18 +0100)]
x11: Warning improvements to xsettings code

... and using g_warning() instead of fprintf()

11 years agox11: Use usual Atom handling in xsettings code
Benjamin Otte [Fri, 15 Feb 2013 18:14:25 +0000 (19:14 +0100)]
x11: Use usual Atom handling in xsettings code

11 years agox11: Consolidate root window event setting in one place
Benjamin Otte [Fri, 15 Feb 2013 17:20:18 +0000 (18:20 +0100)]
x11: Consolidate root window event setting in one place

No need to duplicate things in xsettings code.

11 years agox11: Remove unused argument
Benjamin Otte [Fri, 15 Feb 2013 17:02:51 +0000 (18:02 +0100)]
x11: Remove unused argument

11 years agox11: Store GDK name in xsettings hash table
Benjamin Otte [Thu, 14 Feb 2013 16:20:26 +0000 (17:20 +0100)]
x11: Store GDK name in xsettings hash table

The X name is only used while reading the property, so no need to keep
it.

11 years agox11: Remove XSettingsAction type
Benjamin Otte [Thu, 14 Feb 2013 14:10:18 +0000 (15:10 +0100)]
x11: Remove XSettingsAction type

Use GdkSettingAction instead.

11 years agox11: Make xsettings callbacks code go away
Benjamin Otte [Thu, 14 Feb 2013 14:06:56 +0000 (15:06 +0100)]
x11: Make xsettings callbacks code go away

It's the same callbacks every time, so just move them into the source
file.

11 years agox11: Don't store name in XSettingsSetting anymore
Benjamin Otte [Tue, 12 Feb 2013 19:10:23 +0000 (20:10 +0100)]
x11: Don't store name in XSettingsSetting anymore

This is in preparation to switching XSettingsSetting to GValue

11 years agox11: Use boolean instead of enum for errors in xsettings code
Benjamin Otte [Tue, 12 Feb 2013 18:44:28 +0000 (19:44 +0100)]
x11: Use boolean instead of enum for errors in xsettings code

11 years agox11: Move error reporting to where the error happens
Benjamin Otte [Tue, 12 Feb 2013 18:35:46 +0000 (19:35 +0100)]
x11: Move error reporting to where the error happens

Also, use g_warning() instead of fprintf().

11 years agox11: Move length checking into return_if_fail() macro
Benjamin Otte [Tue, 12 Feb 2013 18:28:41 +0000 (19:28 +0100)]
x11: Move length checking into return_if_fail() macro

11 years agox11: Use GDK error trapping code
Benjamin Otte [Tue, 12 Feb 2013 17:48:09 +0000 (18:48 +0100)]
x11: Use GDK error trapping code

11 years agox11: Split out xsettings string reading code
Benjamin Otte [Tue, 12 Feb 2013 17:45:03 +0000 (18:45 +0100)]
x11: Split out xsettings string reading code

11 years agox11: Clean up xsettings header
Benjamin Otte [Tue, 12 Feb 2013 15:47:45 +0000 (16:47 +0100)]
x11: Clean up xsettings header

Move private struct definitions into source file, remove unneeded C++
guards.

11 years agox11: Add debugging output for xsettings code
Benjamin Otte [Tue, 12 Feb 2013 15:31:03 +0000 (16:31 +0100)]
x11: Add debugging output for xsettings code

11 years agogdk: Add a debug category for settings
Benjamin Otte [Tue, 12 Feb 2013 15:11:46 +0000 (16:11 +0100)]
gdk: Add a debug category for settings

11 years agox11: Use glib malloc funcs for XSettings
Benjamin Otte [Tue, 12 Feb 2013 13:58:44 +0000 (14:58 +0100)]
x11: Use glib malloc funcs for XSettings

11 years agox11: Call grab functions directly
Benjamin Otte [Sun, 10 Feb 2013 00:24:28 +0000 (01:24 +0100)]
x11: Call grab functions directly

... instead of going via vfuncs.

11 years agox11: Pass the GdkScreen to the XSettingsClient
Benjamin Otte [Sun, 10 Feb 2013 00:20:38 +0000 (01:20 +0100)]
x11: Pass the GdkScreen to the XSettingsClient

11 years agox11: Fold xsettings-common.[ch] into xsettings-client.[ch]
Benjamin Otte [Sun, 10 Feb 2013 00:06:58 +0000 (01:06 +0100)]
x11: Fold xsettings-common.[ch] into xsettings-client.[ch]

11 years agox11: Return XSetting without copying
Benjamin Otte [Sat, 9 Feb 2013 23:02:53 +0000 (00:02 +0100)]
x11: Return XSetting without copying

11 years agox11: Don't store last change serial
Benjamin Otte [Fri, 8 Feb 2013 12:36:16 +0000 (13:36 +0100)]
x11: Don't store last change serial

It's unused anyway

11 years agoxsettings: Remove XSettingsList type
Benjamin Otte [Sat, 2 Feb 2013 18:22:04 +0000 (19:22 +0100)]
xsettings: Remove XSettingsList type

Use GHashTable throughout

11 years agoxsettings: Use glib byte order functions
Benjamin Otte [Sat, 2 Feb 2013 18:10:02 +0000 (19:10 +0100)]
xsettings: Use glib byte order functions

11 years agoxsettings: Remove unused function
Benjamin Otte [Sat, 2 Feb 2013 14:32:23 +0000 (15:32 +0100)]
xsettings: Remove unused function

Remove xsettings_client_new() and rename
xsettings_client_new_with_grab_funcs() to xsettings_client_new()

11 years agowindow: Fix compiler warning when not building for X11
Rob Bradford [Mon, 16 Apr 2012 15:26:19 +0000 (16:26 +0100)]
window: Fix compiler warning when not building for X11

The callback function gtk_window_on_theme_variant_changed is only used on the
X11 backend (where GtkSettings is used for the settings information.)

Fixes: https://bugzilla.gnome.org/show_bug.cgi?id=674207
11 years agowayland: Synthesize fullscreen window state change
Rob Bradford [Thu, 31 Jan 2013 11:25:02 +0000 (11:25 +0000)]
wayland: Synthesize fullscreen window state change

11 years agorelease: post-release version bump
Cosimo Cecchi [Tue, 19 Feb 2013 01:50:32 +0000 (20:50 -0500)]
release: post-release version bump

11 years ago3.7.10
Cosimo Cecchi [Tue, 19 Feb 2013 01:12:01 +0000 (20:12 -0500)]
3.7.10

11 years agorelease: update NEWS for 3.7.10
Cosimo Cecchi [Mon, 18 Feb 2013 22:13:46 +0000 (17:13 -0500)]
release: update NEWS for 3.7.10

11 years agodocs: add some missing methods
Cosimo Cecchi [Tue, 19 Feb 2013 00:30:30 +0000 (19:30 -0500)]
docs: add some missing methods

11 years agodocs: add some missing gtk-doc blocks and Since tags for new API
Cosimo Cecchi [Tue, 19 Feb 2013 00:21:22 +0000 (19:21 -0500)]
docs: add some missing gtk-doc blocks and Since tags for new API

11 years agotests: workarounds to keep treeview scrolling tests running
Cosimo Cecchi [Tue, 19 Feb 2013 00:14:13 +0000 (19:14 -0500)]
tests: workarounds to keep treeview scrolling tests running

We can't safely examine allocations synchronously using
gtk_main_iteration(), as there might be not enough time for a new paint
clock tick to have expired and the allocation set on the widget.
Work this around adding g_usleep() calls before processing pending
mainloop events.

11 years agoGtkViewport: annotate the adjustment args of the constructor
Torsten Schönfeld [Sun, 17 Feb 2013 13:00:10 +0000 (14:00 +0100)]
GtkViewport: annotate the adjustment args of the constructor

NULL is accepted here, so add (allow-none).

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

11 years agoFix #673243: accelerators not visible on GtkRadioMenu
jjacky [Thu, 14 Feb 2013 18:56:54 +0000 (19:56 +0100)]
Fix #673243: accelerators not visible on GtkRadioMenu

Also fixes a bug in set_property handler, where setting group to NULL would
cause a warning.

Signed-off-by: jjacky <i.am.jack.mail@gmail.com>
11 years agowayland: attempt to determine the possible parent surface for popups
Thomas Wood [Fri, 15 Feb 2013 11:16:51 +0000 (11:16 +0000)]
wayland: attempt to determine the possible parent surface for popups

Use the surface beneath the device that created the grab as the transient
parent for the popup surfaces.

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

11 years agowayland: look further through the hierarchy for the surface with the grab
Thomas Wood [Thu, 14 Feb 2013 14:44:58 +0000 (14:44 +0000)]
wayland: look further through the hierarchy for the surface with the grab

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

11 years agoimmodule: fix a GCC warning
Cosimo Cecchi [Tue, 19 Feb 2013 00:37:20 +0000 (19:37 -0500)]
immodule: fix a GCC warning

11 years agoGdkWindow: don't leak the newly created frame clock
Owen W. Taylor [Mon, 18 Feb 2013 20:14:53 +0000 (15:14 -0500)]
GdkWindow: don't leak the newly created frame clock

11 years agogtk_widget_on_frame_clock_update: ref the widget
Owen W. Taylor [Mon, 18 Feb 2013 19:55:03 +0000 (14:55 -0500)]
gtk_widget_on_frame_clock_update: ref the widget

Handle a widget being destroyed while in a tick callback by
referencing the widget while dispatching tick callbacks.

11 years agoUpdated Serbian translation
Мирослав Николић [Mon, 18 Feb 2013 18:15:01 +0000 (19:15 +0100)]
Updated Serbian translation

11 years agoGtkAccelLabel: Don't show "+" if there's no more keys to add
Bastien Nocera [Mon, 18 Feb 2013 10:59:26 +0000 (11:59 +0100)]
GtkAccelLabel: Don't show "+" if there's no more keys to add

With the following code:
    #define INVALID_CHAR GDK_KEY_VoidSymbol - 1
    gtk_accelerator_get_label (INVALID_CHAR, GDK_SHIFT_MASK | GDK_CONTROL_MASK);
we would get this label:
    Shift+Ctrl+
instead of this label:
    Shift+Ctrl

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

11 years agowin32: Request higher precision timers during animations
Alexander Larsson [Mon, 18 Feb 2013 14:37:22 +0000 (15:37 +0100)]
win32: Request higher precision timers during animations

The default windows timer resolution is 16msec, which is too little
for fluent animations (say at 60Hz). So, while a paint clock is
active we temporarily raise the timer resolution to 1 msec.

11 years agoAdd gdk_frame_clock_begin/end_updating()
Owen W. Taylor [Fri, 15 Feb 2013 22:04:39 +0000 (17:04 -0500)]
Add gdk_frame_clock_begin/end_updating()

Add an API to start or stop continually updating the frame clock.
This is a slight convenience for applcations and avoids the problem
of getting one more frame run after an animation stops, but the
primary motivation for this is because it looks like we might have
to use timeBeginPeriod()/timeEndPeriod() on Windows to get reasonably
accurate timing, and for that we'll need to know if there is an
animation running.

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

11 years ago[l10n] Update Japanese translation
Shushi KUROSE [Mon, 18 Feb 2013 14:36:53 +0000 (23:36 +0900)]
[l10n] Update Japanese translation

11 years ago[l10n] Update Japanese translation
Jiro Matsuzawa [Mon, 18 Feb 2013 14:32:29 +0000 (23:32 +0900)]
[l10n] Update Japanese translation

Merge the latest pot.

11 years agoRemove unnecessary copy of GdkFrameClockIdlePrivate
Alexander Larsson [Mon, 18 Feb 2013 10:23:22 +0000 (11:23 +0100)]
Remove unnecessary copy of GdkFrameClockIdlePrivate

11 years agowin32: Fix build
Alexander Larsson [Mon, 18 Feb 2013 10:20:40 +0000 (11:20 +0100)]
win32: Fix build

gdkwindown-win32.c included windows.h directly rather than via gdkwin32.h
which broke the build for me at least. Instead rely on it being included in
gdkwin32.h and things work right.

11 years agoGtkEntry: Fix text handle painting
Alexander Larsson [Mon, 18 Feb 2013 08:38:11 +0000 (09:38 +0100)]
GtkEntry: Fix text handle painting

We only draw the main entry on should_draw (widget->window), because
otherwise we also draw it on the GtkTextHandle widgets.

This is necessary due to the recent change for that to not return
TRUE and swallow the rest of the drawing operation.

11 years agoAdd a few missing gtk_widget_unregister_window calls
Alexander Larsson [Mon, 18 Feb 2013 08:35:58 +0000 (09:35 +0100)]
Add a few missing gtk_widget_unregister_window calls

This was causing warnings on widget unparent like:

Gdk-CRITICAL **: gdk_window_has_native: assertion `GDK_IS_WINDOW (window)' failed

Becasue the window was not properly removed from the lists on unrealize.

11 years agoUpdated Czech translation
Marek Černocký [Sun, 17 Feb 2013 19:06:53 +0000 (20:06 +0100)]
Updated Czech translation

11 years agoUpdated Polish translation
Piotr Drąg [Sun, 17 Feb 2013 18:48:15 +0000 (19:48 +0100)]
Updated Polish translation

11 years agoGdkWindowX11: the root window is not a toplevel
Owen W. Taylor [Sat, 16 Feb 2013 16:54:12 +0000 (11:54 -0500)]
GdkWindowX11: the root window is not a toplevel

The macros we had for checking for toplevel windows were passing
through the root window, which was not intentional and meant that
for the root window WINDOW_IS_TOPLEVEL() returned TRUE but
window->impl->toplevel was NULL, causing gdk_window_create_cairo_surface()
to crash.

11 years ago[entry] unregister icon windows
Paolo Borelli [Sat, 16 Feb 2013 15:28:45 +0000 (16:28 +0100)]
[entry] unregister icon windows

11 years agoGdkFrameClockIdle: remove timeouts in dispose
Owen W. Taylor [Sat, 16 Feb 2013 03:21:21 +0000 (22:21 -0500)]
GdkFrameClockIdle: remove timeouts in dispose

When a frame clock is disposed, remove active timeouts; also get
rid of the last traces of an unused GTimer.

11 years agoGtkScrolledWindow: use gtk_widget_add_tick_callback()
Owen W. Taylor [Sat, 16 Feb 2013 02:58:34 +0000 (21:58 -0500)]
GtkScrolledWindow: use gtk_widget_add_tick_callback()

This is slightly simpler and more robust than direct use of
GdkFrameClock.

11 years agoimmodule: Fix context ID lookup on module with multiple contexts
Changwoo Ryu [Wed, 13 Feb 2013 02:44:00 +0000 (02:44 +0000)]
immodule: Fix context ID lookup on module with multiple contexts

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

11 years agoUpdate gtk.symbols
Jasper St. Pierre [Sat, 16 Feb 2013 00:47:46 +0000 (19:47 -0500)]
Update gtk.symbols

11 years agoUpdate gdk.symbols
Jasper St. Pierre [Sat, 16 Feb 2013 00:45:45 +0000 (19:45 -0500)]
Update gdk.symbols

11 years agogdkframeclockidle: Don't expose sleep_source source funcs
Jasper St. Pierre [Sat, 16 Feb 2013 00:42:32 +0000 (19:42 -0500)]
gdkframeclockidle: Don't expose sleep_source source funcs

11 years agogtkplug: Remove a no-op func
Jasper St. Pierre [Sat, 16 Feb 2013 00:40:46 +0000 (19:40 -0500)]
gtkplug: Remove a no-op func

11 years agoFix deprecations for GtkIconInfo
Jasper St. Pierre [Sat, 16 Feb 2013 00:35:44 +0000 (19:35 -0500)]
Fix deprecations for GtkIconInfo

11 years agogtkicontheme: Mark copy/free compat symbols as skip
Jasper St. Pierre [Sat, 16 Feb 2013 00:48:48 +0000 (19:48 -0500)]
gtkicontheme: Mark copy/free compat symbols as skip

11 years agogdkframeclock: Fix doc comments
Jasper St. Pierre [Sat, 16 Feb 2013 00:33:01 +0000 (19:33 -0500)]
gdkframeclock: Fix doc comments

11 years agoDon't crash if inhibit is called with an unrealized window
William Jon McCann [Fri, 15 Feb 2013 21:21:09 +0000 (16:21 -0500)]
Don't crash if inhibit is called with an unrealized window

11 years agoUpdated Lithuanian translation
Aurimas Černius [Fri, 15 Feb 2013 19:52:54 +0000 (21:52 +0200)]
Updated Lithuanian translation

11 years agoUpdated Kazakh translation.
Baurzhan Muftakhidinov [Fri, 15 Feb 2013 14:53:49 +0000 (20:53 +0600)]
Updated Kazakh translation.

11 years agoFix gtk_widget_add_tick_callback sometimes not working
Alexander Larsson [Fri, 15 Feb 2013 14:46:33 +0000 (15:46 +0100)]
Fix gtk_widget_add_tick_callback sometimes not working

We clear GtkTickCallbackInfo on creation to ensure all fields start
as 0. Before we sometimes ended up with destroyed being 1
so the tick was never called.

11 years agoFix up s/gtk_frame_clock/gdk_frame_clock/ in docs
Alexander Larsson [Fri, 15 Feb 2013 13:02:02 +0000 (14:02 +0100)]
Fix up s/gtk_frame_clock/gdk_frame_clock/ in docs

11 years agoFix GtkIconInfo docs
Alexander Larsson [Fri, 15 Feb 2013 10:07:51 +0000 (11:07 +0100)]
Fix GtkIconInfo docs

gtk_icon_info_copy and gtk_icon_info_free are deprecated for
the corresponding GObject methods.

We set correct transfer markup for the GtkIconInfo returning methods
to fix the introspection of them.

gtk_icon_info_load_symbolic_for_context_async had the wrong method
name in its documentation block.

11 years ago[l10n] Updated Catalan (Valencian) translation
Carles Ferrando [Fri, 15 Feb 2013 00:30:17 +0000 (01:30 +0100)]
[l10n] Updated Catalan (Valencian) translation

11 years ago[l10n] Updated Catalan translation
Gil Forcada [Fri, 15 Feb 2013 00:30:07 +0000 (01:30 +0100)]
[l10n] Updated Catalan translation

11 years agoFix a typo in the README
Cosimo Cecchi [Thu, 14 Feb 2013 23:23:47 +0000 (18:23 -0500)]
Fix a typo in the README

11 years agoGtkContainer: fix disconnection from frame clock
Owen W. Taylor [Thu, 14 Feb 2013 22:11:28 +0000 (17:11 -0500)]
GtkContainer: fix disconnection from frame clock

We need to disconnect the frame clock when we unrealize (at which
point the old clock is still alive) not in destroy(). Since there
is no common unrealize for containers, trigger this from GtkWidget.

11 years agoGtkTickCallback: document use of G_SOURCE_CONTINUE/REMOVE for return value
Owen W. Taylor [Thu, 14 Feb 2013 21:24:27 +0000 (16:24 -0500)]
GtkTickCallback: document use of G_SOURCE_CONTINUE/REMOVE for return value

Document that G_SOURCE_CONTINUE and G_SOURCE_REMOVE are the preferred
return values from a tick callback.

11 years agoDon't compress motion events for different devices
Owen W. Taylor [Thu, 14 Feb 2013 19:51:33 +0000 (14:51 -0500)]
Don't compress motion events for different devices

A switch of device may be significant for an application, so don't
compress motion events if they are for different devices. This simple
handling isn't sufficient if we have competing event streams from
two different pointer events, but we don't expect this case to be
common.

11 years agoIgnore window manager protocol messages for destroyed windows
Owen W. Taylor [Thu, 14 Feb 2013 18:52:09 +0000 (13:52 -0500)]
Ignore window manager protocol messages for destroyed windows

If we get, for example, a _NET_WM_FRAME_DRAWN or _NET_WM_PING
message on a destroyed window, then we should just ignore it.

11 years agoSmall documentation fixes for frame synchronization
Owen W. Taylor [Thu, 14 Feb 2013 18:50:55 +0000 (13:50 -0500)]
Small documentation fixes for frame synchronization

Found by Benjamin Otte

11 years agogdk_frame_clock_get_frame_time(): use gint64 for time
Owen W. Taylor [Wed, 13 Feb 2013 13:35:05 +0000 (08:35 -0500)]
gdk_frame_clock_get_frame_time(): use gint64 for time

11 years agoMerge with Merge GdkFrameHistory into GdkFrameClock
Owen W. Taylor [Wed, 13 Feb 2013 06:03:52 +0000 (01:03 -0500)]
Merge with Merge GdkFrameHistory into GdkFrameClock

11 years agoGdkFrameClock: update documentation
Owen W. Taylor [Wed, 13 Feb 2013 02:42:49 +0000 (21:42 -0500)]
GdkFrameClock: update documentation

11 years agoGdkFrameTimings: add documentation
Owen W. Taylor [Tue, 12 Feb 2013 23:26:17 +0000 (18:26 -0500)]
GdkFrameTimings: add documentation

11 years agoGdkFrameClock: Clean up the public API
Owen W. Taylor [Tue, 12 Feb 2013 20:03:21 +0000 (15:03 -0500)]
GdkFrameClock: Clean up the public API

* remove gdk_frame_clock_get_frame_time_val(); a convenience
  function that would rarely be used.
* remove gdk_frame_clock_get_requested() and
  ::frame-requested signal; while we might want to eventually
   be able to track the requested phases for a clock, we don't
  have a current use case.
* Make gdk_frame_clock_freeze/thaw() private: they are only
  used within GTK+ and have complex semantics.
* Remove gdk_frame_clock_get_last_complete(). Another convenience
  function that I don't have a current use case for.
* Rename:
  gdk_frame_clock_get_start() => gdk_frame_clock_get_history_start()
  gdk_frame_clocK_get_current_frame_timings() => gdk_frame_clock_get_timings()

11 years agoGdkFrameTimings: strip down to a minimal public API
Owen W. Taylor [Tue, 12 Feb 2013 21:14:24 +0000 (16:14 -0500)]
GdkFrameTimings: strip down to a minimal public API

Since we're not exporting the ability to create your own frame
clock for now, remove the setters for GdkFrameTimings fields.
Also remove all setters and getters for fields that are more
about implementation than about quantities that are meaningful
to the applcation and just access the fields directly within
GDK.

11 years agoMerge GdkFrameHistory into GdkFrameClock
Owen W. Taylor [Tue, 12 Feb 2013 20:47:38 +0000 (15:47 -0500)]
Merge GdkFrameHistory into GdkFrameClock

Now that GdkFrameClock is a  class, not interface, there's no real advantage
to splitting the frame history into an aggregate object, so directly
merge it into GdkFrameClock.

11 years agoChange GdkFrameClock from an interface to a class
Owen W. Taylor [Tue, 12 Feb 2013 20:02:21 +0000 (15:02 -0500)]
Change GdkFrameClock from an interface to a class

It's unlikely that anyone will want to have, say, a GtkWidget that
also acts as a GdkFrameClock, so an abstract base class is as
flexible as making GdkFrameClock an interface, but has advantages:

 - If we decide to never make implementing your own frame clock
   possible, we can remove the virtualization.
 - We can put functionality like history into the base class.
 - Avoids the oddity of a interface without a public interface
   VTable, which may cause problems for language bindings.

11 years agoGdkWindow: make the frame clock an inherent property of the window
Owen W. Taylor [Wed, 30 Jan 2013 20:09:44 +0000 (15:09 -0500)]
GdkWindow: make the frame clock an inherent property of the window

Instead of making the frame clock a settable property of a window, make
toplevel windows inherently have a frame clock when created (getting
rid of the default frame clock.) We need to create or destroy frame
clocks when reparenting a window to be a toplevel, or to not be a
toplevel, but otherwise the frame clock for a window is immutable.

11 years agoAdd gtk_widget_add_tick_callback(), remove GtkTimeline, etc.
Owen W. Taylor [Wed, 19 Dec 2012 17:03:16 +0000 (12:03 -0500)]
Add gtk_widget_add_tick_callback(), remove GtkTimeline, etc.

Add a very simple GtkWidget function for an "tick" callback, which
is connected to the ::update signal of GdkFrameClock.

Remove:

 - GtkTimeline. The consensus is that it is too complex.
 - GdkPaintClockTarget. In the rare cases where tick callbacks
    aren't sufficient, it's possible to track the
    paint clock with ::realize/::unrealize/::hierarchy-changed.

GtkTimeline is kept using ::update directly to allow using a GtkTimeline
with a paint clock but no widget.

11 years agoGdkX11DeviceManagerXI2: handle focus events not on a known window
Owen W. Taylor [Wed, 30 Jan 2013 20:11:59 +0000 (15:11 -0500)]
GdkX11DeviceManagerXI2: handle focus events not on a known window

If we get a focus event for a X window we don't recognize, just
ignore it and avoid a g-critical when
_gdk_device_manager_core_handle_focus() is called with a NULL window.

11 years agoReimplement _NET_WM_SYNC_REQUEST inside X11 backend
Owen W. Taylor [Wed, 19 Dec 2012 17:49:32 +0000 (12:49 -0500)]
Reimplement _NET_WM_SYNC_REQUEST inside X11 backend

Deprecate gdk_window_enable_synchronized_configure() and
gdk_window_configure_done() and make them no-ops. Implement the
handling of _NET_WM_SYNC_REQUEST in terms of the frame cycle -
we know that all processing will be finished in the next frame
cycle after the ConfigureNotify is received.

11 years agoFix up for newer draft of wm-spec
Owen W. Taylor [Wed, 19 Dec 2012 17:01:52 +0000 (12:01 -0500)]
Fix up for newer draft of wm-spec

* 64-bit quantities are consistently ordered low-32-bits / high-32-bits
* data.l[4] in _NET_WM_SYNC_REQUEST indicates which counter to update

11 years agovideo-timer: add simple example of PLL-style clock adjustment
Owen W. Taylor [Fri, 16 Nov 2012 15:47:17 +0000 (10:47 -0500)]
video-timer: add simple example of PLL-style clock adjustment

The first version of the video-timer simply played back the video
according to the wall clock, and showed each frame at the neareste
presentatin time. But an alternative strategy for playing back
video is that if the frame-rate is an integer-divisor of the
display refresh rate, or very close to that, is to change the playback
speed to complete avoid frame drops and changes in latency.
(This would require resampling audio if present.)

Demonstrate this technique by adding a --pll option to the
video-timer demo.

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

11 years agovideo-timer: add a test case for display at a constant frame rate
Owen W. Taylor [Thu, 15 Nov 2012 22:39:30 +0000 (17:39 -0500)]
video-timer: add a test case for display at a constant frame rate

Add a test case that simulates the timing operaton that goes on
when showing a constant frame rate stream like a video - each
frame is shown at the VBlank interval that is closest to when it
would ideally be timed.

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

11 years agoAdd gdk_frame_timings_get_predicted_presentation_time()
Owen W. Taylor [Thu, 15 Nov 2012 19:11:41 +0000 (14:11 -0500)]
Add gdk_frame_timings_get_predicted_presentation_time()

For an operation like synchronizing audio to video playback, we need to
be able to predict the time that a frame will be presented. The details
of this depend on the windowing system, so make the backend predict
a presentation time for ::begin-frame and set it on the GdkFrameTimings.

The timing algorithm of GdkFrameClockIdle is adjusted to give predictable
presentation times for frames that are not throttled by the windowing
system.

Helper functions:

 gdk_frame_clock_get_current_frame_timings()
 gdk_frame_clock_get_refresh_info()

are added for operations that would otherwise be needed multiple times
in different locations.

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

11 years agoAdd GDK_DEBUG=frames
Owen W. Taylor [Thu, 15 Nov 2012 00:21:33 +0000 (19:21 -0500)]
Add GDK_DEBUG=frames

Add a debug option to print out detailed statistics about each frame drawn.

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

11 years agoanimated-resizing: enhance output
Owen W. Taylor [Wed, 14 Nov 2012 22:54:03 +0000 (17:54 -0500)]
animated-resizing: enhance output

Show the average and standard deviation of the latency in addition to
the frame rate. Add options to print the output in machine-readable form,
and to control the frequency and total number of statistics that will be
output.

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

11 years agoanimated-resizing: make circle size a #define
Owen W. Taylor [Wed, 14 Nov 2012 22:24:02 +0000 (17:24 -0500)]
animated-resizing: make circle size a #define

Clean up the code with a #define for circle size. This also allows
determining we're throttled by number-of-requests or number-of-pixels.

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

11 years agoGdkWindowX11: Communicate gdk_frame_timings_get_slept_before() to the compositor
Owen W. Taylor [Wed, 14 Nov 2012 21:50:05 +0000 (16:50 -0500)]
GdkWindowX11: Communicate gdk_frame_timings_get_slept_before() to the compositor

We want the compositor to do different things for frames where
"slept before" is TRUE. Communicate to the compositor that
frame is a no-delay frame (slept_before=FALSE) by ending the frame
by increasing the counter value by 1, and that the frame is a
normal frame (slept_before=TRUE) by increasing the counter value
by 3.

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