Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
home:Thaodan:emacs
emacs
0003-frame.c-Support-outer-window-id-with-PGTK-...
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File 0003-frame.c-Support-outer-window-id-with-PGTK-on-X11.patch of Package emacs
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Bidar?= <bjorn.bidar@thaodan.de> Date: Sat, 14 Oct 2023 03:11:39 +0300 Subject: [PATCH] * frame.c: Support outer-window-id with PGTK on X11 --- src/frame.c | 13 +++++++++++-- src/pgtkterm.h | 11 +++++++++++ 2 files changed, 22 insertions(+), 2 deletions(-) diff --git a/src/frame.c b/src/frame.c index ff99b0353af2674c31318f684be3965dcdb0dbe3..84a14b0fb2e432acfb4126ecd06edb8ab8b25976 100644 --- a/src/frame.c +++ b/src/frame.c @@ -4624,10 +4624,19 @@ gui_report_frame_params (struct frame *f, Lisp_Object *alistptr) #ifdef USE_X_TOOLKIT /* Tooltip frame may not have this widget. */ if (FRAME_X_OUTPUT (f)->widget) +#endif +#endif +#if defined(HAVE_X_WINDOWS) || defined(HAVE_PGTK) +#ifdef HAVE_PGTK + if(strcmp(G_OBJECT_TYPE_NAME(FRAME_DISPLAY_INFO(f)->display), + "GdkX11Display") ==0) { #endif w = (uintptr_t) FRAME_OUTER_WINDOW (f); store_in_alist (alistptr, Qouter_window_id, make_formatted_string (buf, "%"PRIuMAX, w)); +#ifdef HAVE_PGTK + } +#endif #endif store_in_alist (alistptr, Qicon_name, f->icon_name); store_in_alist (alistptr, Qvisibility, @@ -6292,7 +6301,7 @@ syms_of_frame (void) DEFSYM (Quser_position, "user-position"); DEFSYM (Quser_size, "user-size"); DEFSYM (Qwindow_id, "window-id"); -#ifdef HAVE_X_WINDOWS +#if defined(HAVE_X_WINDOWS) || defined (HAVE_PGTK) DEFSYM (Qouter_window_id, "outer-window-id"); #endif DEFSYM (Qparent_id, "parent-id"); @@ -6778,7 +6787,7 @@ focus (where a frame immediately loses focus when it's left by the mouse DEFVAR_LISP ("frame-internal-parameters", frame_internal_parameters, doc: /* Frame parameters specific to every frame. */); -#ifdef HAVE_X_WINDOWS +#if defined(HAVE_X_WINDOWS) || defined(HAVE_PGTK) frame_internal_parameters = list4 (Qname, Qparent_id, Qwindow_id, Qouter_window_id); #else frame_internal_parameters = list3 (Qname, Qparent_id, Qwindow_id); diff --git a/src/pgtkterm.h b/src/pgtkterm.h index 8072d9636915636bdce0dae20cdbb4747c0ad171..d70883b7d4b1f033815999a3a881c2fa37b61769 100644 --- a/src/pgtkterm.h +++ b/src/pgtkterm.h @@ -460,6 +460,17 @@ #define FRAME_WIDGET(f) (FRAME_GTK_OUTER_WIDGET (f) \ #define FRAME_PGTK_VIEW(f) FRAME_GTK_WIDGET (f) #define FRAME_X_WINDOW(f) FRAME_GTK_OUTER_WIDGET (f) + +extern Window gdk_x11_window_get_xid (GdkWindow *window); + +#define GTK_WIDGET_TO_X_WIN(w) \ + ((w) && gtk_widget_get_window (w) \ + ? gdk_x11_window_get_xid (gtk_widget_get_window (w)) : 0) + +#define FRAME_OUTER_WINDOW(f) \ + (FRAME_GTK_OUTER_WIDGET (f) ? \ + GTK_WIDGET_TO_X_WIN (FRAME_GTK_OUTER_WIDGET (f)) : 0) + #define FRAME_NATIVE_WINDOW(f) GTK_WINDOW (FRAME_X_WINDOW (f)) #define FRAME_GDK_WINDOW(f) \ gtk_widget_get_window (FRAME_GTK_WIDGET (f))
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor