emacs-diffs
[Top][All Lists]
Advanced

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

[Emacs-diffs] trunk r114256: * xterm.h (x_window_to_frame, x_any_window_


From: Dmitry Antipov
Subject: [Emacs-diffs] trunk r114256: * xterm.h (x_window_to_frame, x_any_window_to_frame)
Date: Fri, 13 Sep 2013 06:00:49 +0000
User-agent: Bazaar (2.6b2)

------------------------------------------------------------
revno: 114256
revision-id: address@hidden
parent: address@hidden
committer: Dmitry Antipov <address@hidden>
branch nick: trunk
timestamp: Fri 2013-09-13 10:00:20 +0400
message:
  * xterm.h (x_window_to_frame, x_any_window_to_frame)
  (x_menubar_window_to_frame): Remove prototypes.
  * xfns.c (x_window_to_frame, x_any_window_to_frame)
  (x_menubar_window_to_frame, x_top_window_to_frame):
  Move from here...
  * xterm.c (x_window_to_frame, x_any_window_to_frame)
  (x_menubar_window_to_frame, x_top_window_to_frame):
  ...to here and convert all but the last to static.
modified:
  src/ChangeLog                  changelog-20091113204419-o5vbwnq5f7feedwu-1438
  src/xfns.c                     xfns.c-20091113204419-o5vbwnq5f7feedwu-274
  src/xterm.c                    xterm.c-20091113204419-o5vbwnq5f7feedwu-244
  src/xterm.h                    xterm.h-20091113204419-o5vbwnq5f7feedwu-228
=== modified file 'src/ChangeLog'
--- a/src/ChangeLog     2013-09-12 16:05:12 +0000
+++ b/src/ChangeLog     2013-09-13 06:00:20 +0000
@@ -1,3 +1,14 @@
+2013-09-13  Dmitry Antipov  <address@hidden>
+
+       * xterm.h (x_window_to_frame, x_any_window_to_frame)
+       (x_menubar_window_to_frame): Remove prototypes.
+       * xfns.c (x_window_to_frame, x_any_window_to_frame)
+       (x_menubar_window_to_frame, x_top_window_to_frame):
+       Move from here...
+       * xterm.c (x_window_to_frame, x_any_window_to_frame)
+       (x_menubar_window_to_frame, x_top_window_to_frame):
+       ...to here and convert all but the last to static.
+
 2013-09-12  Eli Zaretskii  <address@hidden>
 
        * lisp.mk (lisp): Add w32-common-fns.elc.

=== modified file 'src/xfns.c'
--- a/src/xfns.c        2013-09-11 17:31:29 +0000
+++ b/src/xfns.c        2013-09-13 06:00:20 +0000
@@ -179,187 +179,6 @@
   return dpyinfo;
 }
 
-
-/* Return the Emacs frame-object corresponding to an X window.
-   It could be the frame's main window or an icon window.  */
-
-/* This function can be called during GC, so use GC_xxx type test macros.  */
-
-struct frame *
-x_window_to_frame (struct x_display_info *dpyinfo, int wdesc)
-{
-  Lisp_Object tail, frame;
-  struct frame *f;
-
-  if (wdesc == None)
-    return NULL;
-
-  FOR_EACH_FRAME (tail, frame)
-    {
-      f = XFRAME (frame);
-      if (!FRAME_X_P (f) || FRAME_X_DISPLAY_INFO (f) != dpyinfo)
-       continue;
-      if (f->output_data.x->hourglass_window == wdesc)
-       return f;
-#ifdef USE_X_TOOLKIT
-      if ((f->output_data.x->edit_widget
-          && XtWindow (f->output_data.x->edit_widget) == wdesc)
-         /* A tooltip frame?  */
-         || (!f->output_data.x->edit_widget
-             && FRAME_X_WINDOW (f) == wdesc)
-          || f->output_data.x->icon_desc == wdesc)
-        return f;
-#else /* not USE_X_TOOLKIT */
-#ifdef USE_GTK
-      if (f->output_data.x->edit_widget)
-      {
-        GtkWidget *gwdesc = xg_win_to_widget (dpyinfo->display, wdesc);
-        struct x_output *x = f->output_data.x;
-        if (gwdesc != 0 && gwdesc == x->edit_widget)
-          return f;
-      }
-#endif /* USE_GTK */
-      if (FRAME_X_WINDOW (f) == wdesc
-          || f->output_data.x->icon_desc == wdesc)
-        return f;
-#endif /* not USE_X_TOOLKIT */
-    }
-  return 0;
-}
-
-#if defined (USE_X_TOOLKIT) || defined (USE_GTK)
-/* Like x_window_to_frame but also compares the window with the widget's
-   windows.  */
-
-struct frame *
-x_any_window_to_frame (struct x_display_info *dpyinfo, int wdesc)
-{
-  Lisp_Object tail, frame;
-  struct frame *f, *found = NULL;
-  struct x_output *x;
-
-  if (wdesc == None)
-    return NULL;
-
-  FOR_EACH_FRAME (tail, frame)
-    {
-      if (found)
-        break;
-      f = XFRAME (frame);
-      if (FRAME_X_P (f) && FRAME_X_DISPLAY_INFO (f) == dpyinfo)
-       {
-         /* This frame matches if the window is any of its widgets.  */
-         x = f->output_data.x;
-         if (x->hourglass_window == wdesc)
-           found = f;
-         else if (x->widget)
-           {
-#ifdef USE_GTK
-              GtkWidget *gwdesc = xg_win_to_widget (dpyinfo->display, wdesc);
-              if (gwdesc != 0
-                  && gtk_widget_get_toplevel (gwdesc) == x->widget)
-                found = f;
-#else
-             if (wdesc == XtWindow (x->widget)
-                 || wdesc == XtWindow (x->column_widget)
-                 || wdesc == XtWindow (x->edit_widget))
-               found = f;
-             /* Match if the window is this frame's menubar.  */
-             else if (lw_window_is_in_menubar (wdesc, x->menubar_widget))
-               found = f;
-#endif
-           }
-         else if (FRAME_X_WINDOW (f) == wdesc)
-           /* A tooltip frame.  */
-           found = f;
-       }
-    }
-
-  return found;
-}
-
-/* Likewise, but consider only the menu bar widget.  */
-
-struct frame *
-x_menubar_window_to_frame (struct x_display_info *dpyinfo, XEvent *event)
-{
-  Window wdesc = event->xany.window;
-  Lisp_Object tail, frame;
-  struct frame *f;
-  struct x_output *x;
-
-  if (wdesc == None)
-    return NULL;
-
-  FOR_EACH_FRAME (tail, frame)
-    {
-      f = XFRAME (frame);
-      if (!FRAME_X_P (f) || FRAME_X_DISPLAY_INFO (f) != dpyinfo)
-       continue;
-      x = f->output_data.x;
-#ifdef USE_GTK
-      if (x->menubar_widget && xg_event_is_for_menubar (f, event))
-        return f;
-#else
-      /* Match if the window is this frame's menubar.  */
-      if (x->menubar_widget
-         && lw_window_is_in_menubar (wdesc, x->menubar_widget))
-       return f;
-#endif
-    }
-  return 0;
-}
-
-/* Return the frame whose principal (outermost) window is WDESC.
-   If WDESC is some other (smaller) window, we return 0.  */
-
-struct frame *
-x_top_window_to_frame (struct x_display_info *dpyinfo, int wdesc)
-{
-  Lisp_Object tail, frame;
-  struct frame *f;
-  struct x_output *x;
-
-  if (wdesc == None)
-    return NULL;
-
-  FOR_EACH_FRAME (tail, frame)
-    {
-      f = XFRAME (frame);
-      if (!FRAME_X_P (f) || FRAME_X_DISPLAY_INFO (f) != dpyinfo)
-       continue;
-      x = f->output_data.x;
-
-      if (x->widget)
-       {
-         /* This frame matches if the window is its topmost widget.  */
-#ifdef USE_GTK
-          GtkWidget *gwdesc = xg_win_to_widget (dpyinfo->display, wdesc);
-          if (gwdesc == x->widget)
-            return f;
-#else
-         if (wdesc == XtWindow (x->widget))
-           return f;
-#if 0 /* I don't know why it did this,
-        but it seems logically wrong,
-        and it causes trouble for MapNotify events.  */
-         /* Match if the window is this frame's menubar.  */
-         if (x->menubar_widget
-             && wdesc == XtWindow (x->menubar_widget))
-           return f;
-#endif
-#endif
-       }
-      else if (FRAME_X_WINDOW (f) == wdesc)
-       /* Tooltip frame.  */
-       return f;
-    }
-  return 0;
-}
-#endif /* USE_X_TOOLKIT || USE_GTK */
-
-
-
 /* Store the screen positions of frame F into XPTR and YPTR.
    These are the positions of the containing window manager window,
    not Emacs's own window.  */

=== modified file 'src/xterm.c'
--- a/src/xterm.c       2013-09-12 07:29:33 +0000
+++ b/src/xterm.c       2013-09-13 06:00:20 +0000
@@ -3389,6 +3389,181 @@
     }
 }
 
+/* Return the Emacs frame-object corresponding to an X window.
+   It could be the frame's main window or an icon window.  */
+
+static struct frame *
+x_window_to_frame (struct x_display_info *dpyinfo, int wdesc)
+{
+  Lisp_Object tail, frame;
+  struct frame *f;
+
+  if (wdesc == None)
+    return NULL;
+
+  FOR_EACH_FRAME (tail, frame)
+    {
+      f = XFRAME (frame);
+      if (!FRAME_X_P (f) || FRAME_X_DISPLAY_INFO (f) != dpyinfo)
+       continue;
+      if (f->output_data.x->hourglass_window == wdesc)
+       return f;
+#ifdef USE_X_TOOLKIT
+      if ((f->output_data.x->edit_widget
+          && XtWindow (f->output_data.x->edit_widget) == wdesc)
+         /* A tooltip frame?  */
+         || (!f->output_data.x->edit_widget
+             && FRAME_X_WINDOW (f) == wdesc)
+          || f->output_data.x->icon_desc == wdesc)
+        return f;
+#else /* not USE_X_TOOLKIT */
+#ifdef USE_GTK
+      if (f->output_data.x->edit_widget)
+      {
+        GtkWidget *gwdesc = xg_win_to_widget (dpyinfo->display, wdesc);
+        struct x_output *x = f->output_data.x;
+        if (gwdesc != 0 && gwdesc == x->edit_widget)
+          return f;
+      }
+#endif /* USE_GTK */
+      if (FRAME_X_WINDOW (f) == wdesc
+          || f->output_data.x->icon_desc == wdesc)
+        return f;
+#endif /* not USE_X_TOOLKIT */
+    }
+  return 0;
+}
+
+#if defined (USE_X_TOOLKIT) || defined (USE_GTK)
+
+/* Like x_window_to_frame but also compares the window with the widget's
+   windows.  */
+
+static struct frame *
+x_any_window_to_frame (struct x_display_info *dpyinfo, int wdesc)
+{
+  Lisp_Object tail, frame;
+  struct frame *f, *found = NULL;
+  struct x_output *x;
+
+  if (wdesc == None)
+    return NULL;
+
+  FOR_EACH_FRAME (tail, frame)
+    {
+      if (found)
+        break;
+      f = XFRAME (frame);
+      if (FRAME_X_P (f) && FRAME_X_DISPLAY_INFO (f) == dpyinfo)
+       {
+         /* This frame matches if the window is any of its widgets.  */
+         x = f->output_data.x;
+         if (x->hourglass_window == wdesc)
+           found = f;
+         else if (x->widget)
+           {
+#ifdef USE_GTK
+              GtkWidget *gwdesc = xg_win_to_widget (dpyinfo->display, wdesc);
+              if (gwdesc != 0
+                  && gtk_widget_get_toplevel (gwdesc) == x->widget)
+                found = f;
+#else
+             if (wdesc == XtWindow (x->widget)
+                 || wdesc == XtWindow (x->column_widget)
+                 || wdesc == XtWindow (x->edit_widget))
+               found = f;
+             /* Match if the window is this frame's menubar.  */
+             else if (lw_window_is_in_menubar (wdesc, x->menubar_widget))
+               found = f;
+#endif
+           }
+         else if (FRAME_X_WINDOW (f) == wdesc)
+           /* A tooltip frame.  */
+           found = f;
+       }
+    }
+
+  return found;
+}
+
+/* Likewise, but consider only the menu bar widget.  */
+
+static struct frame *
+x_menubar_window_to_frame (struct x_display_info *dpyinfo, XEvent *event)
+{
+  Window wdesc = event->xany.window;
+  Lisp_Object tail, frame;
+  struct frame *f;
+  struct x_output *x;
+
+  if (wdesc == None)
+    return NULL;
+
+  FOR_EACH_FRAME (tail, frame)
+    {
+      f = XFRAME (frame);
+      if (!FRAME_X_P (f) || FRAME_X_DISPLAY_INFO (f) != dpyinfo)
+       continue;
+      x = f->output_data.x;
+#ifdef USE_GTK
+      if (x->menubar_widget && xg_event_is_for_menubar (f, event))
+        return f;
+#else
+      /* Match if the window is this frame's menubar.  */
+      if (x->menubar_widget
+         && lw_window_is_in_menubar (wdesc, x->menubar_widget))
+       return f;
+#endif
+    }
+  return 0;
+}
+
+/* Return the frame whose principal (outermost) window is WDESC.
+   If WDESC is some other (smaller) window, we return 0.  */
+
+struct frame *
+x_top_window_to_frame (struct x_display_info *dpyinfo, int wdesc)
+{
+  Lisp_Object tail, frame;
+  struct frame *f;
+  struct x_output *x;
+
+  if (wdesc == None)
+    return NULL;
+
+  FOR_EACH_FRAME (tail, frame)
+    {
+      f = XFRAME (frame);
+      if (!FRAME_X_P (f) || FRAME_X_DISPLAY_INFO (f) != dpyinfo)
+       continue;
+      x = f->output_data.x;
+
+      if (x->widget)
+       {
+         /* This frame matches if the window is its topmost widget.  */
+#ifdef USE_GTK
+          GtkWidget *gwdesc = xg_win_to_widget (dpyinfo->display, wdesc);
+          if (gwdesc == x->widget)
+            return f;
+#else
+         if (wdesc == XtWindow (x->widget))
+           return f;
+#endif
+       }
+      else if (FRAME_X_WINDOW (f) == wdesc)
+       /* Tooltip frame.  */
+       return f;
+    }
+  return 0;
+}
+
+#else /* !USE_X_TOOLKIT && !USE_GTK */
+
+#define x_any_window_to_frame(d, i) x_window_to_frame (d, i)
+#define x_top_window_to_frame(d, i) x_window_to_frame (d, i)
+
+#endif /* USE_X_TOOLKIT || USE_GTK */
+
 /* The focus may have changed.  Figure out if it is a real focus change,
    by checking both FocusIn/Out and Enter/LeaveNotify events.
 

=== modified file 'src/xterm.h'
--- a/src/xterm.h       2013-09-12 07:29:33 +0000
+++ b/src/xterm.h       2013-09-13 06:00:20 +0000
@@ -376,20 +376,6 @@
 extern int use_xim;
 #endif
 
-extern struct frame *x_window_to_frame (struct x_display_info *, int);
-extern struct frame *x_any_window_to_frame (struct x_display_info *, int);
-extern struct frame *x_menubar_window_to_frame (struct x_display_info *,
-                                               XEvent *);
-extern struct frame *x_top_window_to_frame (struct x_display_info *, int);
-
-extern struct frame *x_menubar_window_to_frame (struct x_display_info *,
-                                               XEvent *);
-
-#if ! defined (USE_X_TOOLKIT) && ! defined (USE_GTK)
-#define x_any_window_to_frame x_window_to_frame
-#define x_top_window_to_frame x_window_to_frame
-#endif
-
 /* This is a chain of structures for all the X displays currently in use.  */
 extern struct x_display_info *x_display_list;
 
@@ -400,7 +386,7 @@
 extern Lisp_Object x_display_name_list;
 
 extern struct x_display_info *x_display_info_for_display (Display *);
-
+extern struct frame *x_top_window_to_frame (struct x_display_info *, int);
 extern struct x_display_info *x_term_init (Lisp_Object, char *, char *);
 extern bool x_display_ok (const char *);
 


reply via email to

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