Compare commits
7 Commits
subsurface
...
fix-cursor
Author | SHA1 | Date | |
---|---|---|---|
|
7cd7e781e2 | ||
|
7aed044cb6 | ||
|
e1fde3e2cd | ||
|
bef9b9ccc6 | ||
|
a05efd7270 | ||
|
ec235fa353 | ||
|
eb18e4d9b0 |
39
NEWS
39
NEWS
@@ -1,3 +1,42 @@
|
|||||||
|
Overview of Changes in 4.2.0
|
||||||
|
============================
|
||||||
|
|
||||||
|
* Label: Fix tooltips on links
|
||||||
|
|
||||||
|
* X11:
|
||||||
|
- Fix damage handling
|
||||||
|
- Trap errors from the COW
|
||||||
|
|
||||||
|
* Windows: Use a visible scroll cursor
|
||||||
|
|
||||||
|
* Wayland: Fix key event matching with mismatched layouts.
|
||||||
|
This was causing keyboard accelerators to trigger unexpectedly
|
||||||
|
|
||||||
|
* Inspector: Allow inspecting Unicode
|
||||||
|
|
||||||
|
* Input:
|
||||||
|
- Improve dead key handling
|
||||||
|
- Regenerate compose sequence table
|
||||||
|
|
||||||
|
* gsk:
|
||||||
|
- Fix a crash in the ngl renderer
|
||||||
|
- Fix a rounding error in subpixel glyph positioning
|
||||||
|
- ngl: Implement glyph cache eviction
|
||||||
|
- ngl: Improve the glyph cache effectiveness
|
||||||
|
- ngl: Fix uniform key mapping on Windows
|
||||||
|
- Make the ngl renderer the default
|
||||||
|
|
||||||
|
* build:
|
||||||
|
- Fix build with cairo as subproject
|
||||||
|
- Disable g_assert in release builds
|
||||||
|
|
||||||
|
* Translation updates:
|
||||||
|
Hungarian
|
||||||
|
Italian
|
||||||
|
Polish
|
||||||
|
Ukrainian
|
||||||
|
|
||||||
|
|
||||||
Overview of Changes in 4.1.2
|
Overview of Changes in 4.1.2
|
||||||
============================
|
============================
|
||||||
|
|
||||||
|
@@ -2894,6 +2894,31 @@ gdk_motion_event_new (GdkSurface *surface,
|
|||||||
return (GdkEvent *) self;
|
return (GdkEvent *) self;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
GdkEvent *
|
||||||
|
gdk_synthetic_motion_event_new (GdkSurface *surface,
|
||||||
|
GdkDevice *device,
|
||||||
|
GdkDeviceTool *tool,
|
||||||
|
guint32 time,
|
||||||
|
GdkModifierType state,
|
||||||
|
double x,
|
||||||
|
double y,
|
||||||
|
double *axes)
|
||||||
|
{
|
||||||
|
GdkEvent *event;
|
||||||
|
|
||||||
|
event = gdk_motion_event_new (surface, device, tool, time, state, x, y, axes);
|
||||||
|
|
||||||
|
event->flags |= GDK_EVENT_SYNTHETIC;
|
||||||
|
|
||||||
|
return event;
|
||||||
|
}
|
||||||
|
|
||||||
|
gboolean
|
||||||
|
gdk_motion_event_is_synthetic (GdkEvent *event)
|
||||||
|
{
|
||||||
|
return (event->flags & GDK_EVENT_SYNTHETIC) != 0;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* gdk_event_get_history:
|
* gdk_event_get_history:
|
||||||
* @event: a motion or scroll event
|
* @event: a motion or scroll event
|
||||||
|
@@ -446,6 +446,15 @@ GdkEvent * gdk_motion_event_new (GdkSurface *surface,
|
|||||||
double y,
|
double y,
|
||||||
double *axes);
|
double *axes);
|
||||||
|
|
||||||
|
GdkEvent * gdk_synthetic_motion_event_new (GdkSurface *surface,
|
||||||
|
GdkDevice *device,
|
||||||
|
GdkDeviceTool *tool,
|
||||||
|
guint32 time,
|
||||||
|
GdkModifierType state,
|
||||||
|
double x,
|
||||||
|
double y,
|
||||||
|
double *axes);
|
||||||
|
|
||||||
GdkEvent * gdk_crossing_event_new (GdkEventType type,
|
GdkEvent * gdk_crossing_event_new (GdkEventType type,
|
||||||
GdkSurface *surface,
|
GdkSurface *surface,
|
||||||
GdkDevice *device,
|
GdkDevice *device,
|
||||||
@@ -576,6 +585,8 @@ GdkEvent * gdk_grab_broken_event_new (GdkSurface *surface,
|
|||||||
GdkTranslatedKey * gdk_key_event_get_translated_key (GdkEvent *event,
|
GdkTranslatedKey * gdk_key_event_get_translated_key (GdkEvent *event,
|
||||||
gboolean no_lock);
|
gboolean no_lock);
|
||||||
|
|
||||||
|
gboolean gdk_motion_event_is_synthetic (GdkEvent *event);
|
||||||
|
|
||||||
typedef enum
|
typedef enum
|
||||||
{
|
{
|
||||||
/* Following flag is set for events on the event queue during
|
/* Following flag is set for events on the event queue during
|
||||||
@@ -587,7 +598,10 @@ typedef enum
|
|||||||
* mark all events in the queue with this flag, and deliver
|
* mark all events in the queue with this flag, and deliver
|
||||||
* only those events until we finish the frame.
|
* only those events until we finish the frame.
|
||||||
*/
|
*/
|
||||||
GDK_EVENT_FLUSHED = 1 << 2
|
GDK_EVENT_FLUSHED = 1 << 1,
|
||||||
|
|
||||||
|
/* Used for synthetic motion events. */
|
||||||
|
GDK_EVENT_SYNTHETIC = 1 << 2,
|
||||||
} GdkEventFlags;
|
} GdkEventFlags;
|
||||||
|
|
||||||
GdkEvent* _gdk_event_unqueue (GdkDisplay *display);
|
GdkEvent* _gdk_event_unqueue (GdkDisplay *display);
|
||||||
|
@@ -2455,13 +2455,13 @@ gdk_surface_ensure_motion (GdkSurface *surface)
|
|||||||
if (!gdk_surface_get_device_position (surface, device, &x, &y, &state))
|
if (!gdk_surface_get_device_position (surface, device, &x, &y, &state))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
event = gdk_motion_event_new (surface,
|
event = gdk_synthetic_motion_event_new (surface,
|
||||||
device,
|
device,
|
||||||
NULL,
|
NULL,
|
||||||
GDK_CURRENT_TIME,
|
GDK_CURRENT_TIME,
|
||||||
state,
|
state,
|
||||||
x, y,
|
x, y,
|
||||||
NULL);
|
NULL);
|
||||||
|
|
||||||
gdk_surface_handle_event (event);
|
gdk_surface_handle_event (event);
|
||||||
gdk_event_unref (event);
|
gdk_event_unref (event);
|
||||||
|
@@ -204,7 +204,7 @@ gsk_ngl_texture_library_pack_one (GskNglTextureLibrary *self,
|
|||||||
if (width > self->driver->command_queue->max_texture_size ||
|
if (width > self->driver->command_queue->max_texture_size ||
|
||||||
height > self->driver->command_queue->max_texture_size)
|
height > self->driver->command_queue->max_texture_size)
|
||||||
{
|
{
|
||||||
g_warning ("Clipping requested texture of size %ux%u to maximum allowable size %u.",
|
g_warning ("Texture bigger (%ux%u) than the aximum allowable size %u.",
|
||||||
width, height, self->driver->command_queue->max_texture_size);
|
width, height, self->driver->command_queue->max_texture_size);
|
||||||
width = MIN (width, self->driver->command_queue->max_texture_size);
|
width = MIN (width, self->driver->command_queue->max_texture_size);
|
||||||
height = MIN (height, self->driver->command_queue->max_texture_size);
|
height = MIN (height, self->driver->command_queue->max_texture_size);
|
||||||
|
@@ -2940,6 +2940,11 @@ gtk_text_motion_controller_motion (GtkEventControllerMotion *controller,
|
|||||||
GtkText *self)
|
GtkText *self)
|
||||||
{
|
{
|
||||||
GtkTextPrivate *priv = gtk_text_get_instance_private (self);
|
GtkTextPrivate *priv = gtk_text_get_instance_private (self);
|
||||||
|
GdkEvent *event;
|
||||||
|
|
||||||
|
event = gtk_event_controller_get_current_event (GTK_EVENT_CONTROLLER (controller));
|
||||||
|
if (gdk_motion_event_is_synthetic (event))
|
||||||
|
return;
|
||||||
|
|
||||||
if (priv->mouse_cursor_obscured)
|
if (priv->mouse_cursor_obscured)
|
||||||
{
|
{
|
||||||
|
@@ -5712,6 +5712,12 @@ gtk_text_view_motion (GtkEventController *controller,
|
|||||||
double y,
|
double y,
|
||||||
gpointer user_data)
|
gpointer user_data)
|
||||||
{
|
{
|
||||||
|
GdkEvent *event;
|
||||||
|
|
||||||
|
event = gtk_event_controller_get_current_event (GTK_EVENT_CONTROLLER (controller));
|
||||||
|
if (gdk_motion_event_is_synthetic (event))
|
||||||
|
return;
|
||||||
|
|
||||||
gtk_text_view_unobscure_mouse_cursor (GTK_TEXT_VIEW (user_data));
|
gtk_text_view_unobscure_mouse_cursor (GTK_TEXT_VIEW (user_data));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -29,6 +29,14 @@
|
|||||||
* GtkTreeListModel:
|
* GtkTreeListModel:
|
||||||
*
|
*
|
||||||
* `GtkTreeListModel` is a list model that can create child models on demand.
|
* `GtkTreeListModel` is a list model that can create child models on demand.
|
||||||
|
*
|
||||||
|
* `GtkTreeListModel` is typically used together with `GtkTreeExpander` to
|
||||||
|
* make list widgets where user can expand rows by clicking on an expander.
|
||||||
|
*
|
||||||
|
* When creating `GtkTreeListModel` with [ctor@Gtk.TreeListModel.new], you
|
||||||
|
* specify a *root* model that contains the initial items for your tree, and
|
||||||
|
* a callback function that we be called whenever the tree model needs to
|
||||||
|
* find the children of a given item.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
enum {
|
enum {
|
||||||
|
@@ -2046,7 +2046,7 @@ gtk_window_native_layout (GtkNative *native,
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* This fake motion event is needed for getting up to date pointer focus
|
/* This fake motion event is needed for getting up to date pointer focus
|
||||||
* and coordinates when tho pointer didn't move but the layout changed
|
* and coordinates when the pointer didn't move but the layout changed
|
||||||
* within the window.
|
* within the window.
|
||||||
*/
|
*/
|
||||||
if (gtk_widget_needs_allocate (widget))
|
if (gtk_widget_needs_allocate (widget))
|
||||||
|
Reference in New Issue
Block a user