]> git.eshelyaron.com Git - emacs.git/commitdiff
Try to fix macOS and Windows issues.
authorJuri Linkov <juri@linkov.net>
Mon, 16 Sep 2019 20:46:42 +0000 (23:46 +0300)
committerJuri Linkov <juri@linkov.net>
Mon, 16 Sep 2019 20:46:42 +0000 (23:46 +0300)
lisp/tab-bar.el
src/nsfns.m
src/nsterm.m
src/xdisp.c

index c15eb2979c47de5483e2987d247b6b8933b4ff81..7afb39a0dda795db97ca318b36006c24f6bb6352 100644 (file)
@@ -122,7 +122,7 @@ on a console which has no window system but does have a mouse."
                    (when (eq (car-safe binding) 'menu-item)
                      (when (> (+ column (length (nth 1 binding))) x-position)
                        ;; TODO: handle close
-                       (unless (get-text-property (- x-position column) 'close (nth 1 binding))
+                       (unless (get-text-property (- x-position column) 'close-tab (nth 1 binding))
                          (call-interactively (nth 2 binding)))
                        (throw 'done t))
                      (setq column (+ column (length (nth 1 binding))))))
@@ -180,7 +180,7 @@ Its main job is to show tabs in the tab bar."
                                        data-directory)
                                :margin (2 . 0)
                                :ascent center)
-              'close t
+              'close-tab t
               :help "Click to close tab")
   "Button for closing the clicked tab.")
 
index 890da99082b2866bdfbaba5a731735a09ffca293..308586ef5a80a3124d89ea51a9841ec373f63b5e 100644 (file)
@@ -632,32 +632,7 @@ ns_set_tab_bar_lines (struct frame *f, Lisp_Object value, Lisp_Object oldval)
     nlines = 0;
 
   if (nlines)
-    {
-      FRAME_EXTERNAL_TAB_BAR (f) = 1;
-      update_frame_tab_bar (f);
-    }
-  else
-    {
-      if (FRAME_EXTERNAL_TAB_BAR (f))
-        {
-          free_frame_tab_bar (f);
-          FRAME_EXTERNAL_TAB_BAR (f) = 0;
-
-          {
-            EmacsView *view = FRAME_NS_VIEW (f);
-            int fs_state = [view fullscreenState];
-
-            if (fs_state == FULLSCREEN_MAXIMIZED)
-              {
-                [view setFSValue:FULLSCREEN_WIDTH];
-              }
-            else if (fs_state == FULLSCREEN_HEIGHT)
-              {
-                [view setFSValue:FULLSCREEN_NONE];
-              }
-          }
-       }
-    }
+    update_frame_tab_bar (f);
 
   {
     int inhibit
@@ -1371,7 +1346,7 @@ DEFUN ("x-create-frame", Fx_create_frame, Sx_create_frame,
                          RES_TYPE_STRING);
 
   parms = get_geometry_from_preferences (dpyinfo, parms);
-  window_prompting = gui_figure_window_size (f, parms, true,
+  window_prompting = gui_figure_window_size (f, parms, true, true,
                                              &x_width, &x_height);
 
   tem = gui_display_get_arg (dpyinfo, parms, Qunsplittable, 0, 0,
index d95f7b900648bdd451cf3805ecaa91da50a3d9aa..ff2d195d2fa87bdf1ce8ff2c4003c2e1299832c4 100644 (file)
@@ -1089,7 +1089,7 @@ ns_update_begin (struct frame *f)
   if ([view isFullscreen] && [view fsIsNative])
   {
     // Fix reappearing tool bar or tab bar in fullscreen for Mac OS X 10.7
-    BOOL tarbar_visible = FRAME_EXTERNAL_TAB_BAR (f) ? YES : NO;
+    BOOL tarbar_visible = NO;
     NSToolbar *tabbar = [FRAME_NS_VIEW (f) tabbar];
     if (! tarbar_visible != ! [tabbar isVisible])
       [tabbar setVisible: tarbar_visible];
@@ -7328,8 +7328,7 @@ not_in_argv (NSString *arg)
 
   /* Don't set frame garbaged until tab bar is up to date?
      This avoids an extra clear and redraw (flicker) at frame creation.  */
-  if (FRAME_EXTERNAL_TAB_BAR (f)) wait_for_tab_bar = YES;
-  else wait_for_tab_bar = NO;
+  wait_for_tab_bar = NO;
 
 
 #ifdef NS_IMPL_COCOA
@@ -7756,7 +7755,7 @@ not_in_argv (NSString *arg)
       willUseFullScreenPresentationOptions:
   (NSApplicationPresentationOptions)proposedOptions
 {
-  return proposedOptions|NSApplicationPresentationAutoHideTabbar|NSApplicationPresentationAutoHideToolbar;
+  return proposedOptions|NSApplicationPresentationAutoHideToolbar;
 }
 #endif
 
@@ -7788,7 +7787,7 @@ not_in_argv (NSString *arg)
     }
   else
     {
-      BOOL tarbar_visible = FRAME_EXTERNAL_TAB_BAR (emacsframe) ? YES : NO;
+      BOOL tarbar_visible = NO;
       BOOL toolbar_visible = FRAME_EXTERNAL_TOOL_BAR (emacsframe) ? YES : NO;
 #if defined (NS_IMPL_COCOA) && MAC_OS_X_VERSION_MAX_ALLOWED >= 1070 \
   && MAC_OS_X_VERSION_MIN_REQUIRED <= 1070
@@ -7850,15 +7849,7 @@ not_in_argv (NSString *arg)
 #if defined (NS_IMPL_COCOA) && MAC_OS_X_VERSION_MAX_ALLOWED >= 1070
   [self updateCollectionBehavior];
 #endif
-  if (FRAME_EXTERNAL_TAB_BAR (emacsframe))
-    {
-      [tabbar setVisible:YES];
-      update_frame_tab_bar (emacsframe);
-      [self updateFrameSize:YES];
-      [[self window] display];
-    }
-  else
-    [tabbar setVisible:NO];
+  [tabbar setVisible:NO];
 
   if (FRAME_EXTERNAL_TOOL_BAR (emacsframe))
     {
index f4386884184ae2a857596461f6edbbd41b05403c..197493bfbb89e6ae2c4342275f812989a00d4c16 100644 (file)
@@ -13178,7 +13178,7 @@ tab_bar_item_info (struct frame *f, struct glyph *glyph, int *prop_idx, bool *cl
   *prop_idx = XFIXNUM (prop);
 
   *close_p = !NILP (Fget_text_property (make_fixnum (charpos),
-                                        Qclose,
+                                        Qclose_tab,
                                         f->current_tab_bar_string));
 
   return true;
@@ -13348,6 +13348,7 @@ note_tab_bar_highlight (struct frame *f, int x, int y)
 
   clear_mouse_face (hlinfo);
 
+#ifndef HAVE_NS
   /* Mouse is down, but on different tab-bar item?  */
   mouse_down_p = (gui_mouse_grabbed (dpyinfo)
                  && f == dpyinfo->last_mouse_frame);
@@ -13356,6 +13357,9 @@ note_tab_bar_highlight (struct frame *f, int x, int y)
     return;
 
   draw = mouse_down_p ? DRAW_IMAGE_SUNKEN : DRAW_IMAGE_RAISED;
+#else
+  draw = DRAW_IMAGE_RAISED;
+#endif /* HAVE_NS */
 
   /* If tab-bar item is not enabled, don't highlight it.  */
   enabled_p = AREF (f->tab_bar_items, prop_idx + TAB_BAR_ITEM_ENABLED_P);
@@ -34343,6 +34347,7 @@ window, nil if it's okay to leave the cursor partially-visible.  */);
   Vmake_cursor_line_fully_visible = Qt;
   DEFSYM (Qmake_cursor_line_fully_visible, "make-cursor-line-fully-visible");
 
+  DEFSYM (Qclose_tab, "close-tab");
   DEFVAR_LISP ("tab-bar-border", Vtab_bar_border,
     doc: /* Border below tab-bar in pixels.
 If an integer, use it as the height of the border.