emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

master 98163f48a0: Implement `display-monitors-changed-hook' on PGTK


From: Po Lu
Subject: master 98163f48a0: Implement `display-monitors-changed-hook' on PGTK
Date: Fri, 20 May 2022 23:29:48 -0400 (EDT)

branch: master
commit 98163f48a081442616bf680be06cf51ab74b4681
Author: Po Lu <luangruo@yahoo.com>
Commit: Po Lu <luangruo@yahoo.com>

    Implement `display-monitors-changed-hook' on PGTK
    
    * src/pgtkterm.c (pgtk_draw_glyphless_glyph_string_foreground):
    Pacify GCC 12.
    (pgtk_monitors_changed_cb): New function.
    (pgtk_term_init): Attach new signal handler.
---
 src/pgtkterm.c | 22 ++++++++++++++++++++++
 1 file changed, 22 insertions(+)

diff --git a/src/pgtkterm.c b/src/pgtkterm.c
index b9d0b7b512..71b5f23283 100644
--- a/src/pgtkterm.c
+++ b/src/pgtkterm.c
@@ -1587,6 +1587,10 @@ pgtk_draw_glyphless_glyph_string_foreground (struct 
glyph_string *s)
                             false);
       x += glyph->pixel_width;
     }
+
+  /* Pacify GCC 12 even though s->char2b is not used after this
+     function returns.  */
+  s->char2b = NULL;
 }
 
 /* Brightness beyond which a color won't have its highlight brightness
@@ -6163,6 +6167,20 @@ drag_data_received (GtkWidget *widget, GdkDragContext 
*context,
   gtk_drag_finish (context, TRUE, FALSE, time);
 }
 
+static void
+pgtk_monitors_changed_cb (GdkScreen *screen, gpointer user_data)
+{
+  struct terminal *terminal;
+  union buffered_input_event inev;
+
+  EVENT_INIT (inev.ie);
+  terminal = user_data;
+  inev.ie.kind = MONITORS_CHANGED_EVENT;
+  XSETTERMINAL (inev.ie.arg, terminal);
+
+  evq_enqueue (&inev);
+}
+
 void
 pgtk_set_event_handler (struct frame *f)
 {
@@ -6458,6 +6476,10 @@ pgtk_term_init (Lisp_Object display_name, char 
*resource_name)
   dpyinfo->resx = dpi;
   dpyinfo->resy = dpi;
 
+  g_signal_connect (G_OBJECT (gscr), "monitors-changed",
+                   G_CALLBACK (pgtk_monitors_changed_cb),
+                   terminal);
+
   /* Set up scrolling increments.  */
   dpyinfo->scroll.x_per_char = 1;
   dpyinfo->scroll.y_per_line = 1;



reply via email to

[Prev in Thread] Current Thread [Next in Thread]