I have continued (and maybe finished?) making the full-screen
functionality in Carbon Emacs compatible with the X port.  For those who
didn't read the previous thread: Per Seiji's suggestion, the patch
disposes of the mac-toggle-max-window command and instead ties the
full-screen mode to the frame parameter 'fullscreen, like the X port:

  (set-frame-parameter nil 'fullscreen 'fullboth)
  (set-frame-parameter nil 'fullscreen 'fullheight)
  (set-frame-parameter nil 'fullscreen 'fullwidth)
  (set-frame-parameter nil 'fullscreen nil)

The new patch and a build (for easy testing) are here:

  http://www.ljosa.com/~ljosa/carbonemacs/fullscreen-patch-20080603.diff

  http://www.ljosa.com/~ljosa/carbonemacs/fullscreen-20080603.dmg

The new version differs from my previous attempt in the following ways:

 * Properly restores the original size of the window and the menu bar
   when leaving full-screen mode.  (This would sometimes break in my
   previous patch, e.g., when the frame parameter went nil -> 'fullboth
   -> 'fullheight -> nil.)

 * Keeps the menu bar and title bar in 'fullwidth and 'fullheight mode.

 * Cleaner and shorter code; uses the frame parameter
   'fullscreen-saved-state to store the original frame position and
   size.

 * Turns off the menu bar only for frames on the main display.  (Thanks,
   David!)

 * Turns off the menu bar only for frames in 'fullboth mode (so you can
   now have multiple frames, some in 'fullboth mode and some not,
   without problems).

Seiji, I know you suggested hiding the menu bar for all frames when one
frame is in full-screen mode, but try the current patch.  I think you
will like the way it handles the menu bar, which is consistent both with
the GTK port of Emacs and with various Mac applications.

Vebjorn

--~--~---------~--~----~------------~-------~--~----~
Carbon Emacs User Group
http://groups.google.com/group/carbon-emacs?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to