summaryrefslogtreecommitdiff
path: root/src/frame.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/frame.c')
-rw-r--r--src/frame.c26
1 files changed, 19 insertions, 7 deletions
diff --git a/src/frame.c b/src/frame.c
index 2b1cb452efd..2b06bc821d0 100644
--- a/src/frame.c
+++ b/src/frame.c
@@ -225,7 +225,9 @@ Value is:
`x' for an Emacs frame that is really an X window,
`w32' for an Emacs frame that is a window on MS-Windows display,
`ns' for an Emacs frame on a GNUstep or Macintosh Cocoa display,
- `pc' for a direct-write MS-DOS frame.
+ `pc' for a direct-write MS-DOS frame,
+ `pgtk' for an Emacs frame running on pure GTK.
+ `haiku' for an Emacs frame running in Haiku.
See also `frame-live-p'. */)
(Lisp_Object object)
{
@@ -244,6 +246,10 @@ See also `frame-live-p'. */)
return Qpc;
case output_ns:
return Qns;
+ case output_pgtk:
+ return Qpgtk;
+ case output_haiku:
+ return Qhaiku;
default:
emacs_abort ();
}
@@ -2212,7 +2218,8 @@ delete_frame (Lisp_Object frame, Lisp_Object force)
/* Since a similar behavior was observed on the Lucid and Motif
builds (see Bug#5802, Bug#21509, Bug#23499, Bug#27816), we now
don't delete the terminal for these builds either. */
- if (terminal->reference_count == 0 && terminal->type == output_x_window)
+ if (terminal->reference_count == 0 &&
+ (terminal->type == output_x_window || terminal->type == output_pgtk))
terminal->reference_count = 1;
#endif /* USE_X_TOOLKIT || USE_GTK */
if (terminal->reference_count == 0)
@@ -5028,8 +5035,6 @@ gui_set_no_special_glyphs (struct frame *f, Lisp_Object new_value, Lisp_Object o
}
-#ifndef HAVE_NS
-
/* Non-zero if mouse is grabbed on DPYINFO
and we know the frame where it is. */
@@ -5054,8 +5059,6 @@ gui_redo_mouse_highlight (Display_Info *dpyinfo)
dpyinfo->last_mouse_motion_y);
}
-#endif /* HAVE_NS */
-
/* Subroutines of creating an X frame. */
/* Make sure that Vx_resource_name is set to a reasonable value.
@@ -5897,7 +5900,7 @@ This function is for internal use only. */)
#ifdef HAVE_WINDOW_SYSTEM
-# if (defined USE_GTK || defined HAVE_NS || defined HAVE_XINERAMA \
+# if (defined USE_GTK || defined HAVE_PGTK || defined HAVE_NS || defined HAVE_XINERAMA \
|| defined HAVE_XRANDR)
void
free_monitors (struct MonitorInfo *monitors, int n_monitors)
@@ -5935,6 +5938,10 @@ make_monitor_attribute_list (struct MonitorInfo *monitors,
attributes);
attributes = Fcons (Fcons (Qframes, AREF (monitor_frames, i)),
attributes);
+#ifdef HAVE_PGTK
+ attributes = Fcons (Fcons (Qscale_factor, make_float (mi->scale_factor)),
+ attributes);
+#endif
attributes = Fcons (Fcons (Qmm_size,
list2i (mi->mm_width, mi->mm_height)),
attributes);
@@ -6024,6 +6031,8 @@ syms_of_frame (void)
DEFSYM (Qw32, "w32");
DEFSYM (Qpc, "pc");
DEFSYM (Qns, "ns");
+ DEFSYM (Qpgtk, "pgtk");
+ DEFSYM (Qhaiku, "haiku");
DEFSYM (Qvisible, "visible");
DEFSYM (Qbuffer_predicate, "buffer-predicate");
DEFSYM (Qbuffer_list, "buffer-list");
@@ -6046,6 +6055,9 @@ syms_of_frame (void)
DEFSYM (Qworkarea, "workarea");
DEFSYM (Qmm_size, "mm-size");
+#ifdef HAVE_PGTK
+ DEFSYM (Qscale_factor, "scale-factor");
+#endif
DEFSYM (Qframes, "frames");
DEFSYM (Qsource, "source");