mirror of
https://gitlab.gnome.org/GNOME/gtk.git
synced 2024-12-27 06:00:22 +00:00
Merge branch 'matthiasc/for-master' into 'master'
Matthiasc/for master See merge request GNOME/gtk!1967
This commit is contained in:
commit
9f4da7dfd1
@ -174,7 +174,6 @@ gdk_rgba_get_type
|
||||
GdkSurface
|
||||
GdkGravity
|
||||
GdkSurfaceEdge
|
||||
GdkSurfaceTypeHint
|
||||
GdkSurfaceState
|
||||
gdk_surface_new_toplevel
|
||||
gdk_surface_new_popup
|
||||
@ -470,7 +469,6 @@ gdk_seat_capabilities_get_type
|
||||
<FILE>events</FILE>
|
||||
GdkEvent
|
||||
GdkEventType
|
||||
GdkEventMask
|
||||
GdkKeyMatch
|
||||
GdkTouchpadGesturePhase
|
||||
GdkScrollDirection
|
||||
|
51
gdk/gdk.c
51
gdk/gdk.c
@ -296,57 +296,6 @@ gdk_should_use_portal (void)
|
||||
return use_portal[0] == '1';
|
||||
}
|
||||
|
||||
/**
|
||||
* SECTION:threads
|
||||
* @Short_description: Functions for using GDK in multi-threaded programs
|
||||
* @Title: Threads
|
||||
*
|
||||
* For thread safety, GDK relies on the thread primitives in GLib,
|
||||
* and on the thread-safe GLib main loop.
|
||||
*
|
||||
* GLib is completely thread safe (all global data is automatically
|
||||
* locked), but individual data structure instances are not automatically
|
||||
* locked for performance reasons. So e.g. you must coordinate
|
||||
* accesses to the same #GHashTable from multiple threads.
|
||||
*
|
||||
* GTK, however, is not thread safe. You should only use GTK and GDK
|
||||
* from the thread gtk_init() and gtk_main() were called on.
|
||||
* This is usually referred to as the “main thread”.
|
||||
*
|
||||
* Signals on GTK and GDK types, as well as non-signal callbacks, are
|
||||
* emitted in the main thread.
|
||||
*
|
||||
* You can schedule work in the main thread safely from other threads
|
||||
* by using g_main_context_invoke(), g_idle_add(), and g_timeout_add():
|
||||
*
|
||||
* |[<!-- language="C" -->
|
||||
* static void
|
||||
* worker_thread (void)
|
||||
* {
|
||||
* ExpensiveData *expensive_data = do_expensive_computation ();
|
||||
*
|
||||
* g_main_context_invoke (NULL, got_value, expensive_data);
|
||||
* }
|
||||
*
|
||||
* static gboolean
|
||||
* got_value (gpointer user_data)
|
||||
* {
|
||||
* ExpensiveData *expensive_data = user_data;
|
||||
*
|
||||
* my_app->expensive_data = expensive_data;
|
||||
* gtk_button_set_sensitive (my_app->button, TRUE);
|
||||
* gtk_button_set_label (my_app->button, expensive_data->result_label);
|
||||
*
|
||||
* return G_SOURCE_REMOVE;
|
||||
* }
|
||||
* ]|
|
||||
*
|
||||
* For more information on this "worker thread" pattern, you should
|
||||
* also look at #GTask, which gives you high-level tools to perform
|
||||
* expensive tasks from worker threads, and will handle thread
|
||||
* management for you.
|
||||
*/
|
||||
|
||||
PangoDirection
|
||||
gdk_unichar_direction (gunichar ch)
|
||||
{
|
||||
|
@ -577,53 +577,6 @@ _gdk_event_queue_append (GdkDisplay *display,
|
||||
return g_queue_peek_tail_link (&display->queued_events);
|
||||
}
|
||||
|
||||
/**
|
||||
* _gdk_event_queue_insert_after:
|
||||
* @display: a #GdkDisplay
|
||||
* @sibling: Append after this event.
|
||||
* @event: Event to append.
|
||||
*
|
||||
* Appends an event after the specified event, or if it isn’t in
|
||||
* the queue, onto the tail of the event queue.
|
||||
*/
|
||||
void
|
||||
_gdk_event_queue_insert_after (GdkDisplay *display,
|
||||
GdkEvent *sibling,
|
||||
GdkEvent *event)
|
||||
{
|
||||
GList *prev = g_queue_find (&display->queued_events, sibling);
|
||||
|
||||
if (prev)
|
||||
g_queue_insert_after (&display->queued_events, prev, event);
|
||||
else
|
||||
g_queue_push_tail (&display->queued_events, event);
|
||||
}
|
||||
|
||||
/**
|
||||
* _gdk_event_queue_insert_before:
|
||||
* @display: a #GdkDisplay
|
||||
* @sibling: Append before this event
|
||||
* @event: Event to prepend
|
||||
*
|
||||
* Prepends an event before the specified event, or if it isn’t in
|
||||
* the queue, onto the head of the event queue.
|
||||
*
|
||||
* Returns: the newly prepended list node.
|
||||
*/
|
||||
void
|
||||
_gdk_event_queue_insert_before (GdkDisplay *display,
|
||||
GdkEvent *sibling,
|
||||
GdkEvent *event)
|
||||
{
|
||||
GList *next = g_queue_find (&display->queued_events, sibling);
|
||||
|
||||
if (next)
|
||||
g_queue_insert_before (&display->queued_events, next, event);
|
||||
else
|
||||
g_queue_push_head (&display->queued_events, event);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* _gdk_event_queue_remove_link:
|
||||
* @display: a #GdkDisplay
|
||||
|
121
gdk/gdkgl.c
121
gdk/gdkgl.c
@ -437,127 +437,6 @@ out:
|
||||
cairo_region_destroy (clip_region);
|
||||
}
|
||||
|
||||
/* This is always called with the paint context current */
|
||||
void
|
||||
gdk_gl_texture_from_surface (cairo_surface_t *cairo_surface,
|
||||
cairo_region_t *region)
|
||||
{
|
||||
GdkGLContext *paint_context;
|
||||
cairo_surface_t *image;
|
||||
double device_x_offset, device_y_offset;
|
||||
cairo_rectangle_int_t rect, e;
|
||||
int n_rects, i;
|
||||
GdkSurface *surface;
|
||||
int unscaled_surface_height;
|
||||
unsigned int texture_id;
|
||||
int surface_scale;
|
||||
double sx, sy;
|
||||
float umax, vmax;
|
||||
gboolean use_texture_rectangle;
|
||||
guint target;
|
||||
|
||||
paint_context = gdk_gl_context_get_current ();
|
||||
|
||||
#ifdef G_ENABLE_DEBUG
|
||||
if (paint_context != NULL)
|
||||
{
|
||||
GdkDisplay *display = gdk_draw_context_get_display (GDK_DRAW_CONTEXT (paint_context));
|
||||
|
||||
if (GDK_DISPLAY_DEBUG_CHECK (display, GL_SOFTWARE) == 0)
|
||||
return;
|
||||
}
|
||||
#endif
|
||||
|
||||
if (paint_context != NULL &&
|
||||
GDK_GL_CONTEXT_GET_CLASS (paint_context)->texture_from_surface &&
|
||||
GDK_GL_CONTEXT_GET_CLASS (paint_context)->texture_from_surface (paint_context, cairo_surface, region))
|
||||
return;
|
||||
|
||||
/* Software fallback */
|
||||
use_texture_rectangle = gdk_gl_context_use_texture_rectangle (paint_context);
|
||||
|
||||
surface = gdk_gl_context_get_surface (paint_context);
|
||||
surface_scale = gdk_surface_get_scale_factor (surface);
|
||||
gdk_surface_get_unscaled_size (surface, NULL, &unscaled_surface_height);
|
||||
|
||||
sx = sy = 1;
|
||||
cairo_surface_get_device_scale (cairo_surface, &sx, &sy);
|
||||
cairo_surface_get_device_offset (cairo_surface, &device_x_offset, &device_y_offset);
|
||||
|
||||
glGenTextures (1, &texture_id);
|
||||
if (use_texture_rectangle)
|
||||
target = GL_TEXTURE_RECTANGLE_ARB;
|
||||
else
|
||||
target = GL_TEXTURE_2D;
|
||||
|
||||
glBindTexture (target, texture_id);
|
||||
glEnable (GL_SCISSOR_TEST);
|
||||
|
||||
glTexParameteri (target, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
|
||||
glTexParameteri (target, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
|
||||
glTexParameteri (target, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
|
||||
glTexParameteri (target, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
|
||||
|
||||
n_rects = cairo_region_num_rectangles (region);
|
||||
|
||||
#define FLIP_Y(_y) (unscaled_surface_height - (_y))
|
||||
|
||||
for (i = 0; i < n_rects; i++)
|
||||
{
|
||||
cairo_region_get_rectangle (region, i, &rect);
|
||||
|
||||
glScissor (rect.x * surface_scale, FLIP_Y ((rect.y + rect.height) * surface_scale),
|
||||
rect.width * surface_scale, rect.height * surface_scale);
|
||||
|
||||
e = rect;
|
||||
e.x *= sx;
|
||||
e.y *= sy;
|
||||
e.x += (int)device_x_offset;
|
||||
e.y += (int)device_y_offset;
|
||||
e.width *= sx;
|
||||
e.height *= sy;
|
||||
image = cairo_surface_map_to_image (cairo_surface, &e);
|
||||
|
||||
gdk_gl_context_upload_texture (paint_context,
|
||||
cairo_image_surface_get_data (image),
|
||||
e.width,
|
||||
e.height,
|
||||
cairo_image_surface_get_stride (image),
|
||||
target);
|
||||
|
||||
cairo_surface_unmap_image (cairo_surface, image);
|
||||
|
||||
if (use_texture_rectangle)
|
||||
{
|
||||
umax = rect.width * sx;
|
||||
vmax = rect.height * sy;
|
||||
}
|
||||
else
|
||||
{
|
||||
umax = 1.0;
|
||||
vmax = 1.0;
|
||||
}
|
||||
|
||||
{
|
||||
GdkTexturedQuad quad = {
|
||||
rect.x * surface_scale, FLIP_Y(rect.y * surface_scale),
|
||||
(rect.x + rect.width) * surface_scale, FLIP_Y((rect.y + rect.height) * surface_scale),
|
||||
0, 0,
|
||||
umax, vmax,
|
||||
};
|
||||
|
||||
/* We don't want to combine the quads here, because they have different textures.
|
||||
* And we don't want to upload the unused source areas to make it one texture. */
|
||||
gdk_gl_texture_quads (paint_context, target, 1, &quad, TRUE);
|
||||
}
|
||||
}
|
||||
|
||||
#undef FLIP_Y
|
||||
|
||||
glDisable (GL_SCISSOR_TEST);
|
||||
glDeleteTextures (1, &texture_id);
|
||||
}
|
||||
|
||||
/**
|
||||
* gdk_cairo_surface_upload_to_gl:
|
||||
* @surface: a Cairo surface
|
||||
|
@ -94,8 +94,6 @@ void gdk_display_set_debug_flags (GdkDisplay *display,
|
||||
|
||||
/* Event handling */
|
||||
|
||||
typedef struct _GdkEventPrivate GdkEventPrivate;
|
||||
|
||||
typedef enum
|
||||
{
|
||||
/* Following flag is set for events on the event queue during
|
||||
@ -115,8 +113,6 @@ typedef struct _GdkSurfacePaint GdkSurfacePaint;
|
||||
#define GDK_SURFACE_TYPE(d) ((((GdkSurface *)(d)))->surface_type)
|
||||
#define GDK_SURFACE_DESTROYED(d) (((GdkSurface *)(d))->destroyed)
|
||||
|
||||
extern gint _gdk_screen_number;
|
||||
|
||||
GdkEvent* _gdk_event_unqueue (GdkDisplay *display);
|
||||
|
||||
void _gdk_event_emit (GdkEvent *event);
|
||||
@ -125,27 +121,12 @@ void _gdk_event_queue_remove_link (GdkDisplay *display,
|
||||
GList *node);
|
||||
GList* _gdk_event_queue_append (GdkDisplay *display,
|
||||
GdkEvent *event);
|
||||
void _gdk_event_queue_insert_after (GdkDisplay *display,
|
||||
GdkEvent *after_event,
|
||||
GdkEvent *event);
|
||||
void _gdk_event_queue_insert_before(GdkDisplay *display,
|
||||
GdkEvent *after_event,
|
||||
GdkEvent *event);
|
||||
|
||||
void _gdk_event_queue_handle_motion_compression (GdkDisplay *display);
|
||||
void _gdk_event_queue_flush (GdkDisplay *display);
|
||||
|
||||
void _gdk_event_button_generate (GdkDisplay *display,
|
||||
GdkEvent *event);
|
||||
|
||||
void _gdk_windowing_event_data_copy (GdkEvent *src,
|
||||
GdkEvent *dst);
|
||||
void _gdk_windowing_event_data_free (GdkEvent *event);
|
||||
|
||||
gboolean _gdk_cairo_surface_extents (cairo_surface_t *surface,
|
||||
GdkRectangle *extents);
|
||||
void gdk_gl_texture_from_surface (cairo_surface_t *surface,
|
||||
cairo_region_t *region);
|
||||
|
||||
typedef struct {
|
||||
float x1, y1, x2, y2;
|
||||
@ -193,12 +174,6 @@ void gdk_surface_leave_monitor (GdkSurface *surface,
|
||||
* Interfaces provided by windowing code *
|
||||
*****************************************/
|
||||
|
||||
/* Font/string functions implemented in module-specific code */
|
||||
|
||||
void _gdk_cursor_destroy (GdkCursor *cursor);
|
||||
|
||||
extern const GOptionEntry _gdk_windowing_args[];
|
||||
|
||||
void _gdk_windowing_got_event (GdkDisplay *display,
|
||||
GList *event_link,
|
||||
GdkEvent *event,
|
||||
@ -268,6 +243,34 @@ typedef enum
|
||||
GDK_OWNERSHIP_APPLICATION
|
||||
} GdkGrabOwnership;
|
||||
|
||||
typedef enum
|
||||
{
|
||||
GDK_EXPOSURE_MASK = 1 << 1,
|
||||
GDK_POINTER_MOTION_MASK = 1 << 2,
|
||||
GDK_BUTTON_MOTION_MASK = 1 << 4,
|
||||
GDK_BUTTON1_MOTION_MASK = 1 << 5,
|
||||
GDK_BUTTON2_MOTION_MASK = 1 << 6,
|
||||
GDK_BUTTON3_MOTION_MASK = 1 << 7,
|
||||
GDK_BUTTON_PRESS_MASK = 1 << 8,
|
||||
GDK_BUTTON_RELEASE_MASK = 1 << 9,
|
||||
GDK_KEY_PRESS_MASK = 1 << 10,
|
||||
GDK_KEY_RELEASE_MASK = 1 << 11,
|
||||
GDK_ENTER_NOTIFY_MASK = 1 << 12,
|
||||
GDK_LEAVE_NOTIFY_MASK = 1 << 13,
|
||||
GDK_FOCUS_CHANGE_MASK = 1 << 14,
|
||||
GDK_STRUCTURE_MASK = 1 << 15,
|
||||
GDK_PROPERTY_CHANGE_MASK = 1 << 16,
|
||||
GDK_PROXIMITY_IN_MASK = 1 << 18,
|
||||
GDK_PROXIMITY_OUT_MASK = 1 << 19,
|
||||
GDK_SUBSTRUCTURE_MASK = 1 << 20,
|
||||
GDK_SCROLL_MASK = 1 << 21,
|
||||
GDK_TOUCH_MASK = 1 << 22,
|
||||
GDK_SMOOTH_SCROLL_MASK = 1 << 23,
|
||||
GDK_TOUCHPAD_GESTURE_MASK = 1 << 24,
|
||||
GDK_TABLET_PAD_MASK = 1 << 25,
|
||||
GDK_ALL_EVENTS_MASK = 0x3FFFFFE
|
||||
} GdkEventMask;
|
||||
|
||||
GdkGrabStatus gdk_device_grab (GdkDevice *device,
|
||||
GdkSurface *surface,
|
||||
GdkGrabOwnership grab_ownership,
|
||||
@ -313,6 +316,26 @@ typedef enum
|
||||
GDK_HINT_USER_SIZE = 1 << 8
|
||||
} GdkSurfaceHints;
|
||||
|
||||
typedef enum
|
||||
{
|
||||
GDK_SURFACE_TYPE_HINT_NORMAL,
|
||||
GDK_SURFACE_TYPE_HINT_DIALOG,
|
||||
GDK_SURFACE_TYPE_HINT_MENU, /* Torn off menu */
|
||||
GDK_SURFACE_TYPE_HINT_TOOLBAR,
|
||||
GDK_SURFACE_TYPE_HINT_SPLASHSCREEN,
|
||||
GDK_SURFACE_TYPE_HINT_UTILITY,
|
||||
GDK_SURFACE_TYPE_HINT_DOCK,
|
||||
GDK_SURFACE_TYPE_HINT_DESKTOP,
|
||||
GDK_SURFACE_TYPE_HINT_DROPDOWN_MENU, /* A drop down menu (from a menubar) */
|
||||
GDK_SURFACE_TYPE_HINT_POPUP_MENU, /* A popup menu (from right-click) */
|
||||
GDK_SURFACE_TYPE_HINT_TOOLTIP,
|
||||
GDK_SURFACE_TYPE_HINT_NOTIFICATION,
|
||||
GDK_SURFACE_TYPE_HINT_COMBO,
|
||||
GDK_SURFACE_TYPE_HINT_DND
|
||||
} GdkSurfaceTypeHint;
|
||||
|
||||
typedef struct _GdkGeometry GdkGeometry;
|
||||
|
||||
struct _GdkGeometry
|
||||
{
|
||||
gint min_width;
|
||||
|
157
gdk/gdktypes.h
157
gdk/gdktypes.h
@ -44,7 +44,7 @@
|
||||
*/
|
||||
#include <gdk/gdkconfig.h>
|
||||
|
||||
/* some common magic values */
|
||||
G_BEGIN_DECLS
|
||||
|
||||
/**
|
||||
* GDK_CURRENT_TIME:
|
||||
@ -53,19 +53,6 @@
|
||||
*/
|
||||
#define GDK_CURRENT_TIME 0L
|
||||
|
||||
/**
|
||||
* GDK_PARENT_RELATIVE:
|
||||
*
|
||||
* A special value, indicating that the background
|
||||
* for a surface should be inherited from the parent surface.
|
||||
*/
|
||||
#define GDK_PARENT_RELATIVE 1L
|
||||
|
||||
|
||||
|
||||
G_BEGIN_DECLS
|
||||
|
||||
|
||||
/**
|
||||
* GdkPoint:
|
||||
* @x: the x coordinate of the point
|
||||
@ -126,8 +113,6 @@ typedef struct _GdkAppLaunchContext GdkAppLaunchContext;
|
||||
typedef struct _GdkSeat GdkSeat;
|
||||
typedef struct _GdkSnapshot GdkSnapshot;
|
||||
|
||||
typedef struct _GdkGeometry GdkGeometry;
|
||||
|
||||
typedef struct _GdkDrawingContext GdkDrawingContext;
|
||||
typedef struct _GdkDrawContext GdkDrawContext;
|
||||
typedef struct _GdkCairoContext GdkCairoContext;
|
||||
@ -152,11 +137,7 @@ typedef struct _GdkVulkanContext GdkVulkanContext;
|
||||
* @GDK_GRAVITY_STATIC: the reference point is at the top left corner of the
|
||||
* surface itself, ignoring window manager decorations.
|
||||
*
|
||||
* Defines the reference point of a surface and the meaning of coordinates
|
||||
* passed to gtk_window_move(). See gtk_window_move() and the "implementation
|
||||
* notes" section of the
|
||||
* [Extended Window Manager Hints](http://www.freedesktop.org/Standards/wm-spec)
|
||||
* specification for more details.
|
||||
* Defines the reference point of a surface and is used in #GdkPopupLayout.
|
||||
*/
|
||||
typedef enum
|
||||
{
|
||||
@ -172,24 +153,6 @@ typedef enum
|
||||
GDK_GRAVITY_STATIC
|
||||
} GdkGravity;
|
||||
|
||||
/**
|
||||
* GdkByteOrder:
|
||||
* @GDK_LSB_FIRST: The values are stored with the least-significant byte
|
||||
* first. For instance, the 32-bit value 0xffeecc would be stored
|
||||
* in memory as 0xcc, 0xee, 0xff, 0x00.
|
||||
* @GDK_MSB_FIRST: The values are stored with the most-significant byte
|
||||
* first. For instance, the 32-bit value 0xffeecc would be stored
|
||||
* in memory as 0x00, 0xff, 0xee, 0xcc.
|
||||
*
|
||||
* A set of values describing the possible byte-orders
|
||||
* for storing pixel values in memory.
|
||||
*/
|
||||
typedef enum
|
||||
{
|
||||
GDK_LSB_FIRST,
|
||||
GDK_MSB_FIRST
|
||||
} GdkByteOrder;
|
||||
|
||||
/* Types of modifiers.
|
||||
*/
|
||||
/**
|
||||
@ -247,74 +210,6 @@ typedef enum
|
||||
GDK_BUTTON1_MASK|GDK_BUTTON2_MASK|GDK_BUTTON3_MASK| \
|
||||
GDK_BUTTON4_MASK|GDK_BUTTON5_MASK)
|
||||
|
||||
/**
|
||||
* GdkEventMask:
|
||||
* @GDK_EXPOSURE_MASK: receive expose events
|
||||
* @GDK_POINTER_MOTION_MASK: receive all pointer motion events
|
||||
* @GDK_BUTTON_MOTION_MASK: receive pointer motion events while any button is pressed
|
||||
* @GDK_BUTTON1_MOTION_MASK: receive pointer motion events while 1 button is pressed
|
||||
* @GDK_BUTTON2_MOTION_MASK: receive pointer motion events while 2 button is pressed
|
||||
* @GDK_BUTTON3_MOTION_MASK: receive pointer motion events while 3 button is pressed
|
||||
* @GDK_BUTTON_PRESS_MASK: receive button press events
|
||||
* @GDK_BUTTON_RELEASE_MASK: receive button release events
|
||||
* @GDK_KEY_PRESS_MASK: receive key press events
|
||||
* @GDK_KEY_RELEASE_MASK: receive key release events
|
||||
* @GDK_ENTER_NOTIFY_MASK: receive surface enter events
|
||||
* @GDK_LEAVE_NOTIFY_MASK: receive surface leave events
|
||||
* @GDK_FOCUS_CHANGE_MASK: receive focus change events
|
||||
* @GDK_STRUCTURE_MASK: receive events about surface configuration change
|
||||
* @GDK_PROPERTY_CHANGE_MASK: receive property change events
|
||||
* @GDK_PROXIMITY_IN_MASK: receive proximity in events
|
||||
* @GDK_PROXIMITY_OUT_MASK: receive proximity out events
|
||||
* @GDK_SUBSTRUCTURE_MASK: receive events about surface configuration changes of child surfaces
|
||||
* @GDK_SCROLL_MASK: receive scroll events
|
||||
* @GDK_TOUCH_MASK: receive touch events
|
||||
* @GDK_SMOOTH_SCROLL_MASK: receive smooth scrolling events
|
||||
@GDK_TOUCHPAD_GESTURE_MASK: receive touchpad gesture events
|
||||
* @GDK_TABLET_PAD_MASK: receive tablet pad events
|
||||
* @GDK_ALL_EVENTS_MASK: the combination of all the above event masks.
|
||||
*
|
||||
* A set of bit-flags to indicate which events a surface is to receive.
|
||||
* Most of these masks map onto one or more of the #GdkEventType event types
|
||||
* above.
|
||||
*
|
||||
* See the [input handling overview][chap-input-handling] for details of
|
||||
* [event masks][event-masks] and [event propagation][event-propagation].
|
||||
*
|
||||
* If %GDK_TOUCH_MASK is enabled, the surface will receive touch events
|
||||
* from touch-enabled devices. Those will come as sequences of #GdkEventTouch
|
||||
* with type %GDK_TOUCH_UPDATE, enclosed by two events with
|
||||
* type %GDK_TOUCH_BEGIN and %GDK_TOUCH_END (or %GDK_TOUCH_CANCEL).
|
||||
* gdk_event_get_event_sequence() returns the event sequence for these
|
||||
* events, so different sequences may be distinguished.
|
||||
*/
|
||||
typedef enum
|
||||
{
|
||||
GDK_EXPOSURE_MASK = 1 << 1,
|
||||
GDK_POINTER_MOTION_MASK = 1 << 2,
|
||||
GDK_BUTTON_MOTION_MASK = 1 << 4,
|
||||
GDK_BUTTON1_MOTION_MASK = 1 << 5,
|
||||
GDK_BUTTON2_MOTION_MASK = 1 << 6,
|
||||
GDK_BUTTON3_MOTION_MASK = 1 << 7,
|
||||
GDK_BUTTON_PRESS_MASK = 1 << 8,
|
||||
GDK_BUTTON_RELEASE_MASK = 1 << 9,
|
||||
GDK_KEY_PRESS_MASK = 1 << 10,
|
||||
GDK_KEY_RELEASE_MASK = 1 << 11,
|
||||
GDK_ENTER_NOTIFY_MASK = 1 << 12,
|
||||
GDK_LEAVE_NOTIFY_MASK = 1 << 13,
|
||||
GDK_FOCUS_CHANGE_MASK = 1 << 14,
|
||||
GDK_STRUCTURE_MASK = 1 << 15,
|
||||
GDK_PROPERTY_CHANGE_MASK = 1 << 16,
|
||||
GDK_PROXIMITY_IN_MASK = 1 << 18,
|
||||
GDK_PROXIMITY_OUT_MASK = 1 << 19,
|
||||
GDK_SUBSTRUCTURE_MASK = 1 << 20,
|
||||
GDK_SCROLL_MASK = 1 << 21,
|
||||
GDK_TOUCH_MASK = 1 << 22,
|
||||
GDK_SMOOTH_SCROLL_MASK = 1 << 23,
|
||||
GDK_TOUCHPAD_GESTURE_MASK = 1 << 24,
|
||||
GDK_TABLET_PAD_MASK = 1 << 25,
|
||||
GDK_ALL_EVENTS_MASK = 0x3FFFFFE
|
||||
} GdkEventMask;
|
||||
|
||||
/**
|
||||
* GdkGLError:
|
||||
@ -347,54 +242,6 @@ typedef enum {
|
||||
GDK_VULKAN_ERROR_NOT_AVAILABLE,
|
||||
} GdkVulkanError;
|
||||
|
||||
/**
|
||||
* GdkSurfaceTypeHint:
|
||||
* @GDK_SURFACE_TYPE_HINT_NORMAL: Normal toplevel window.
|
||||
* @GDK_SURFACE_TYPE_HINT_DIALOG: Dialog window.
|
||||
* @GDK_SURFACE_TYPE_HINT_MENU: Window used to implement a menu; GTK uses
|
||||
* this hint only for torn-off menus, see #GtkTearoffMenuItem.
|
||||
* @GDK_SURFACE_TYPE_HINT_TOOLBAR: Window used to implement toolbars.
|
||||
* @GDK_SURFACE_TYPE_HINT_SPLASHSCREEN: Window used to display a splash
|
||||
* screen during application startup.
|
||||
* @GDK_SURFACE_TYPE_HINT_UTILITY: Utility windows which are not detached
|
||||
* toolbars or dialogs.
|
||||
* @GDK_SURFACE_TYPE_HINT_DOCK: Used for creating dock or panel windows.
|
||||
* @GDK_SURFACE_TYPE_HINT_DESKTOP: Used for creating the desktop background
|
||||
* window.
|
||||
* @GDK_SURFACE_TYPE_HINT_DROPDOWN_MENU: A menu that belongs to a menubar.
|
||||
* @GDK_SURFACE_TYPE_HINT_POPUP_MENU: A menu that does not belong to a menubar,
|
||||
* e.g. a context menu.
|
||||
* @GDK_SURFACE_TYPE_HINT_TOOLTIP: A tooltip.
|
||||
* @GDK_SURFACE_TYPE_HINT_NOTIFICATION: A notification - typically a “bubble”
|
||||
* that belongs to a status icon.
|
||||
* @GDK_SURFACE_TYPE_HINT_COMBO: A popup from a combo box.
|
||||
* @GDK_SURFACE_TYPE_HINT_DND: A window that is used to implement a DND cursor.
|
||||
*
|
||||
* These are hints for the window manager that indicate what type of function
|
||||
* the window has. The window manager can use this when determining decoration
|
||||
* and behaviour of the window. The hint must be set before mapping the window.
|
||||
*
|
||||
* See the [Extended Window Manager Hints](http://www.freedesktop.org/Standards/wm-spec)
|
||||
* specification for more details about window types.
|
||||
*/
|
||||
typedef enum
|
||||
{
|
||||
GDK_SURFACE_TYPE_HINT_NORMAL,
|
||||
GDK_SURFACE_TYPE_HINT_DIALOG,
|
||||
GDK_SURFACE_TYPE_HINT_MENU, /* Torn off menu */
|
||||
GDK_SURFACE_TYPE_HINT_TOOLBAR,
|
||||
GDK_SURFACE_TYPE_HINT_SPLASHSCREEN,
|
||||
GDK_SURFACE_TYPE_HINT_UTILITY,
|
||||
GDK_SURFACE_TYPE_HINT_DOCK,
|
||||
GDK_SURFACE_TYPE_HINT_DESKTOP,
|
||||
GDK_SURFACE_TYPE_HINT_DROPDOWN_MENU, /* A drop down menu (from a menubar) */
|
||||
GDK_SURFACE_TYPE_HINT_POPUP_MENU, /* A popup menu (from right-click) */
|
||||
GDK_SURFACE_TYPE_HINT_TOOLTIP,
|
||||
GDK_SURFACE_TYPE_HINT_NOTIFICATION,
|
||||
GDK_SURFACE_TYPE_HINT_COMBO,
|
||||
GDK_SURFACE_TYPE_HINT_DND
|
||||
} GdkSurfaceTypeHint;
|
||||
|
||||
/**
|
||||
* GdkAxisUse:
|
||||
* @GDK_AXIS_IGNORE: the axis is ignored.
|
||||
|
@ -49,23 +49,6 @@
|
||||
|
||||
static gboolean gdk_synchronize = FALSE;
|
||||
|
||||
static gboolean dummy;
|
||||
|
||||
const GOptionEntry _gdk_windowing_args[] = {
|
||||
{ "sync", 0, 0, G_OPTION_ARG_NONE, &gdk_synchronize,
|
||||
/* Description of --sync in --help output */ N_("Don’t batch GDI requests"), NULL },
|
||||
{ "no-wintab", 0, 0, G_OPTION_ARG_NONE, &_gdk_input_ignore_wintab,
|
||||
/* Description of --no-wintab in --help output */ N_("Don’t use the Wintab API for tablet support"), NULL },
|
||||
{ "ignore-wintab", 0, 0, G_OPTION_ARG_NONE, &_gdk_input_ignore_wintab,
|
||||
/* Description of --ignore-wintab in --help output */ N_("Same as --no-wintab"), NULL },
|
||||
{ "use-wintab", 0, 0, G_OPTION_ARG_NONE, &dummy,
|
||||
/* Description of --use-wintab in --help output */ N_("Do use the Wintab API [default]"), NULL },
|
||||
{ "max-colors", 0, 0, G_OPTION_ARG_INT, &_gdk_max_colors,
|
||||
/* Description of --max-colors=COLORS in --help output */ N_("Size of the palette in 8 bit mode"),
|
||||
/* Placeholder in --max-colors=COLORS in --help output */ N_("COLORS") },
|
||||
{ NULL }
|
||||
};
|
||||
|
||||
void
|
||||
_gdk_win32_surfaceing_init (void)
|
||||
{
|
||||
|
@ -20,6 +20,7 @@
|
||||
|
||||
#include "gdktypes.h"
|
||||
#include "gdkdisplay.h"
|
||||
#include "gdkinternals.h"
|
||||
|
||||
#include <X11/Xlib.h>
|
||||
|
||||
|
@ -46,6 +46,12 @@ typedef enum
|
||||
GDK_VISUAL_DIRECT_COLOR
|
||||
} GdkVisualType;
|
||||
|
||||
typedef enum
|
||||
{
|
||||
GDK_LSB_FIRST,
|
||||
GDK_MSB_FIRST
|
||||
} GdkByteOrder;
|
||||
|
||||
struct _GdkX11Visual
|
||||
{
|
||||
GObject parent_instance;
|
||||
|
@ -933,7 +933,10 @@ gtk_accelerator_print_label (GString *gstring,
|
||||
if (accelerator_key >= GDK_KEY_KP_Space &&
|
||||
accelerator_key <= GDK_KEY_KP_Equal)
|
||||
{
|
||||
/* Translators: "KP" means "numeric key pad" */
|
||||
/* Translators: "KP" means "numeric key pad". This string will
|
||||
* be used in accelerators such as "Ctrl+Shift+KP 1" in menus,
|
||||
* and therefore the translation needs to be very short.
|
||||
*/
|
||||
g_string_append (gstring, C_("keyboard label", "KP"));
|
||||
g_string_append (gstring, " ");
|
||||
}
|
||||
|
@ -241,8 +241,6 @@ typedef struct
|
||||
guint hide_on_close : 1;
|
||||
guint in_emit_close_request : 1;
|
||||
|
||||
GdkSurfaceTypeHint type_hint;
|
||||
|
||||
GtkGesture *click_gesture;
|
||||
GtkEventController *key_controller;
|
||||
GtkEventController *application_shortcut_controller;
|
||||
@ -3602,9 +3600,8 @@ gtk_window_resize (GtkWindow *window,
|
||||
* ]|
|
||||
*
|
||||
* If you are getting a window size in order to position the window
|
||||
* on the screen, you should, instead, simply set the window’s semantic
|
||||
* type with gtk_window_set_type_hint(), which allows the window manager
|
||||
* to e.g. center dialogs. Also, if you set the transient parent of
|
||||
* on the screen, don't. You should, instead, simply let the window
|
||||
* manager place windows. Also, if you set the transient parent of
|
||||
* dialogs with gtk_window_set_transient_for() window managers will
|
||||
* often center the dialog over its parent window. It's much preferred
|
||||
* to let the window manager handle these cases rather than doing it
|
||||
|
@ -56,7 +56,6 @@ list_ignore_properties (gboolean buglist)
|
||||
{ "GtkWidget", "parent", NULL, }, /* needs working parent widget */
|
||||
{ "GtkWidget", "has-default", (void*) TRUE, }, /* conflicts with toplevel-less widgets */
|
||||
{ "GtkWidget", "display", (void*) MATCH_ANY_VALUE },
|
||||
{ "GtkWindow", "type-hint", (void*) GDK_SURFACE_TYPE_HINT_DND, }, /* conflicts with ::visible=TRUE */
|
||||
{ "GtkCellView", "background", (void*) "", }, /* "" is not a valid background color */
|
||||
{ "GtkFileChooserButton", "select-multiple", (void*) MATCH_ANY_VALUE }, /* property disabled */
|
||||
{ "GtkFileChooserButton", "action", (void*) GTK_FILE_CHOOSER_ACTION_SAVE },
|
||||
|
Loading…
Reference in New Issue
Block a user