all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
* fullcreen = fullboth yields undesirable behavior
@ 2007-09-21 15:01 Tom Tromey
  2007-09-22 13:28 ` Jan Djärv
  0 siblings, 1 reply; 7+ messages in thread
From: Tom Tromey @ 2007-09-21 15:01 UTC (permalink / raw)
  To: emacs-pretest-bug


Please write in English if possible, because the Emacs maintainers
usually do not have translators to read other languages for them.

Your bug report will be posted to the emacs-pretest-bug@gnu.org mailing list.

Please describe exactly what actions triggered the bug
and the precise symptoms of the bug:

I recently wrote an elisp program which resized a frame using the size
parameter 'fullscreen' with a value of 'fullboth'.

This resized the frame to fill the entire screen.  The window manager
frame was not visible, and the Gnome panel was obscured.

Reading the docs, I can see how this is probably the planned behavior.
However, I was expecting it to act more like maximizing the window
using the window manager (where the window manager frame and the panel
would remain visible).  I couldn't think of a situation where I would
want the current behavior.

Gtk provides an API, gtk_window_maximize, which I think Emacs should
use and which I think should provide my desired behavior.  If changing
'fullboth' is undesirable, perhaps a new value for 'fullscreen' could
be added.


If Emacs crashed, and you have the Emacs process in the gdb debugger,
please include the output from the following gdb commands:
    `bt full' and `xbacktrace'.
If you would like to further debug the crash, please read the file
/usr/share/emacs/22.0.990/etc/DEBUG for instructions.


In GNU Emacs 22.0.990.1 (i386-koji-linux-gnu, GTK+ Version 2.10.11)
 of 2007-05-23 on xenbuilder3.fedora.phx.redhat.com
Windowing system distributor `The X.Org Foundation', version 11.0.70101000
configured using `configure  '--build=i386-koji-linux-gnu' '--host=i386-koji-linux-gnu' '--target=i386-redhat-linux-gnu' '--program-prefix=' '--prefix=/usr' '--exec-prefix=/usr' '--bindir=/usr/bin' '--sbindir=/usr/sbin' '--sysconfdir=/etc' '--datadir=/usr/share' '--includedir=/usr/include' '--libdir=/usr/lib' '--libexecdir=/usr/libexec' '--localstatedir=/var' '--sharedstatedir=/usr/com' '--mandir=/usr/share/man' '--infodir=/usr/share/info' '--with-pop' '--with-sound' '--with-gtk' 'build_alias=i386-koji-linux-gnu' 'host_alias=i386-koji-linux-gnu' 'target_alias=i386-redhat-linux-gnu' 'CFLAGS=-DMAIL_USE_LOCKF -DSYSTEM_PURESIZE_EXTRA=16777216 -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions --param=ssp-buffer-size=4 -m32 -march=i386 -mtune=generic -fasynchronous-unwind-tables''

Important settings:
  value of $LC_ALL: nil
  value of $LC_COLLATE: nil
  value of $LC_CTYPE: nil
  value of $LC_MESSAGES: nil
  value of $LC_MONETARY: nil
  value of $LC_NUMERIC: nil
  value of $LC_TIME: nil
  value of $LANG: en_US.UTF-8
  locale-coding-system: utf-8
  default-enable-multibyte-characters: t

Major mode: Java/l

Minor modes in effect:
  shell-dirtrack-mode: t
  auto-fill-function: tjt-c++-do-auto-fill
  compilation-in-progress: (grep grep grep grep grep compilation compilation gid gid compilation gid gid gid gid grep gid gid gid gid gid gid grep grep grep gid compilation compilation compilation compilation gid gid compilation grep compilation compilation compilation grep grep grep gid gid gid grep gid gid grep gid grep gid grep gid grep grep grep grep gid gid gid gid gid grep gid gid gid gid gid compilation compilation compilation grep grep grep grep gid grep compilation compilation compilation compilation compilation compilation compilation compilation gid grep grep grep grep grep grep gid gid grep compilation grep compilation compilation grep compilation grep gid grep gid gid grep grep gid)
  erc-menu-mode: t
  erc-autojoin-mode: t
  erc-ring-mode: t
  erc-pcomplete-mode: t
  erc-track-mode: t
  erc-track-minor-mode: t
  erc-match-mode: t
  erc-button-mode: t
  erc-fill-mode: t
  erc-stamp-mode: t
  erc-netsplit-mode: t
  erc-spelling-mode: t
  erc-truncate-mode: t
  flyspell-mode: t
  erc-status-mode: t
  erc-services-mode: t
  erc-irccontrols-mode: t
  erc-noncommands-mode: t
  erc-readonly-mode: t
  tooltip-mode: t
  mouse-wheel-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  unify-8859-on-encoding-mode: t
  utf-translate-cjk-mode: t
  auto-compression-mode: t
  line-number-mode: t
  transient-mark-mode: t
  abbrev-mode: t

Recent input:
<tab> C o l l <tab> s . h <backspace> j <tab> <return> 
C-s s o r t ( C-s C-v C-s C-s C-v C-s C-s C-v C-s C-s 
C-a C-z o C-z o M-v C-v C-v C-s C-s C-r C-a C-z o I 
SPC d i d n ' C-a C-k <f10> M-v M-v C-v C-v M-> a n 
d SPC i f SPC t h e y SPC w e r e SPC w r o n g , SPC 
t h e y ' d SPC b e a t SPC t h e SPC s h i t SPC o 
u t SPC o f SPC t h e m s e l v e s SPC a n d SPC t 
h e n SPC d i e <M-backspace> c o m m i t SPC s u i 
c i d e <return> o h SPC t h o s e SPC a n c i e n 
t SPC h o n o r a b l e SPC d a y s <return> <help-echo> 
<switch-frame> <help-echo> <switch-frame> <f10> <f10> 
<f10> <f10> <f10> C-x o C-u C-n C-n C-n C-n C-n C-c 
C-c C-x 1 C-x C-f g t <tab> <tab> c <return> C-v C-v 
C-v C-s m a x i m C-s C-a C-x k <return> C-l <f10> 
<f10> <switch-frame> C-z o y e h a C-t <return> <f10> 
<f10> <f10> <f10> C-s C-w C-w C-s C-s C-s C-a C-x b 
* g r <tab> <return> C-c b C-s C-s C-s C-s C-a M-v 
M-v C-v C-s C-s C-a C-s w a n C-w C-w C-s C-s C-s C-a 
C-u C-u C-n C-l C-u C-p C-l C-z o M-x r e p o r t - 
e m <tab> b <tab> <return>

Recent messages:
uncompressing elisp-6.gz...done
error in process sentinel: play-sound: No usable sound device driver found
error in process sentinel: No usable sound device driver found
error in process sentinel: play-sound: No usable sound device driver found
error in process sentinel: No usable sound device driver found
Mark set
Mark saved where search started [5 times]
Mark set [2 times]
Making completion list...
Mark saved where search started [5 times]

Tom

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: fullcreen = fullboth yields undesirable behavior
  2007-09-21 15:01 fullcreen = fullboth yields undesirable behavior Tom Tromey
@ 2007-09-22 13:28 ` Jan Djärv
  2007-09-22 13:56   ` Tom Tromey
  0 siblings, 1 reply; 7+ messages in thread
From: Jan Djärv @ 2007-09-22 13:28 UTC (permalink / raw)
  To: Tom Tromey; +Cc: emacs-pretest-bug

Fullscreen on Gnome is done as specified by the extended window manager hints. 
  Thst is, Emacs just tells the window manager, "make me 
fullscreen/height/width", and the windowmanager does what it sees fit.

However, you can request fullscreen or fullwidth+height.  These may be 
interpreted differently by the window manager, even if the spec says it should 
not.

Tom Tromey skrev:
> Please write in English if possible, because the Emacs maintainers
> usually do not have translators to read other languages for them.
> 
> Your bug report will be posted to the emacs-pretest-bug@gnu.org mailing list.
> 
> Please describe exactly what actions triggered the bug
> and the precise symptoms of the bug:
> 
> I recently wrote an elisp program which resized a frame using the size
> parameter 'fullscreen' with a value of 'fullboth'.
> 
> This resized the frame to fill the entire screen.  The window manager
> frame was not visible, and the Gnome panel was obscured.
> 
> Reading the docs, I can see how this is probably the planned behavior.
> However, I was expecting it to act more like maximizing the window
> using the window manager (where the window manager frame and the panel
> would remain visible).  I couldn't think of a situation where I would
> want the current behavior.
> 
> Gtk provides an API, gtk_window_maximize, which I think Emacs should
> use and which I think should provide my desired behavior.  If changing
> 'fullboth' is undesirable, perhaps a new value for 'fullscreen' could
> be added.

gtk_window_maximize does what Emacs already does.  It can't be used when Emacs 
is not compiled with Gtk+, so there is no point in doing so.

	Jan D.

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: fullcreen = fullboth yields undesirable behavior
  2007-09-22 13:28 ` Jan Djärv
@ 2007-09-22 13:56   ` Tom Tromey
  2007-09-22 17:41     ` Henrik Enberg
  2007-09-24  7:02     ` Jan Djärv
  0 siblings, 2 replies; 7+ messages in thread
From: Tom Tromey @ 2007-09-22 13:56 UTC (permalink / raw)
  To: Jan Djärv; +Cc: emacs-pretest-bug

>>>>> "Jan" == Jan Djärv <jan.h.d@swipnet.se> writes:

Jan> Fullscreen on Gnome is done as specified by the extended window
Jan> manager hints. Thst is, Emacs just tells the window manager, "make me
Jan> fullscreen/height/width", and the windowmanager does what it sees fit.

Yeah, that much I still remember from my X days :-)

Jan> However, you can request fullscreen or fullwidth+height.  These may be
Jan> interpreted differently by the window manager, even if the spec says
Jan> it should not.

Jan> gtk_window_maximize does what Emacs already does.  It can't be used
Jan> when Emacs is not compiled with Gtk+, so there is no point in doing
Jan> so.

There is still a difference in behavior between Emacs and other Gtk
apps.

If I eval (make-frame '((fullscreen . fullboth))), it takes up the
entire screen, hiding the panel.

However, when I run the roughly equivalent pygtk program which calls
'window.maximize()', I get the results I expect -- a maximized window
where I can see the wm decorations and which does not hide the panel.

So, even if calling gtk_window_maximize is pointless, there is still
an Emacs bug.

Or, at the very least, a missing Emacs feature.  I did manage to think
of a reason that the current behavior might be desirable: if I was
using a presentation tool in Emacs (EPT), I might want this behavior.
However, that is a specialized use; more frequently I would want plain
Gtk-style "maximize".

Tom

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: fullcreen = fullboth yields undesirable behavior
  2007-09-22 13:56   ` Tom Tromey
@ 2007-09-22 17:41     ` Henrik Enberg
  2007-09-24  6:06       ` Jan Djärv
  2007-09-24  7:02     ` Jan Djärv
  1 sibling, 1 reply; 7+ messages in thread
From: Henrik Enberg @ 2007-09-22 17:41 UTC (permalink / raw)
  To: Tom Tromey; +Cc: emacs-pretest-bug, Jan Djärv

Tom Tromey <tromey@redhat.com> writes:
> >>>>> "Jan" == Jan Djärv <jan.h.d@swipnet.se> writes:
> 
> Jan> gtk_window_maximize does what Emacs already does.  It can't be used
> Jan> when Emacs is not compiled with Gtk+, so there is no point in doing
> Jan> so.
> 
> There is still a difference in behavior between Emacs and other Gtk
> apps.
> 
> If I eval (make-frame '((fullscreen . fullboth))), it takes up the
> entire screen, hiding the panel.
> 
> However, when I run the roughly equivalent pygtk program which calls
> 'window.maximize()', I get the results I expect -- a maximized window
> where I can see the wm decorations and which does not hide the panel.

Emacs probably needs to look at the _NET_WM_STRUT and
_NET_WM_STRUT_PARTIAL properties of the EWMH spec when determining
width and height in Fx_create_frame.

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: fullcreen = fullboth yields undesirable behavior
  2007-09-22 17:41     ` Henrik Enberg
@ 2007-09-24  6:06       ` Jan Djärv
  0 siblings, 0 replies; 7+ messages in thread
From: Jan Djärv @ 2007-09-24  6:06 UTC (permalink / raw)
  To: Henrik Enberg; +Cc: Tom Tromey, emacs-pretest-bug



Henrik Enberg skrev:
> Tom Tromey <tromey@redhat.com> writes:
>>>>>>> "Jan" == Jan Djärv <jan.h.d@swipnet.se> writes:
>> Jan> gtk_window_maximize does what Emacs already does.  It can't be used
>> Jan> when Emacs is not compiled with Gtk+, so there is no point in doing
>> Jan> so.
>>
>> There is still a difference in behavior between Emacs and other Gtk
>> apps.
>>
>> If I eval (make-frame '((fullscreen . fullboth))), it takes up the
>> entire screen, hiding the panel.
>>
>> However, when I run the roughly equivalent pygtk program which calls
>> 'window.maximize()', I get the results I expect -- a maximized window
>> where I can see the wm decorations and which does not hide the panel.
> 
> Emacs probably needs to look at the _NET_WM_STRUT and
> _NET_WM_STRUT_PARTIAL properties of the EWMH spec when determining
> width and height in Fx_create_frame.

No.  Those are set, for example, by gnome-panel to inform the window manager 
that those areas are reserved and should not be obscured by fullscreen windows.

	Jan D.

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: fullcreen = fullboth yields undesirable behavior
  2007-09-22 13:56   ` Tom Tromey
  2007-09-22 17:41     ` Henrik Enberg
@ 2007-09-24  7:02     ` Jan Djärv
  2007-09-24 14:42       ` Tom Tromey
  1 sibling, 1 reply; 7+ messages in thread
From: Jan Djärv @ 2007-09-24  7:02 UTC (permalink / raw)
  To: tromey; +Cc: emacs-pretest-bug



Tom Tromey skrev:

> Jan> However, you can request fullscreen or fullwidth+height.  These may be
> Jan> interpreted differently by the window manager, even if the spec says
> Jan> it should not.
> 
> Jan> gtk_window_maximize does what Emacs already does.  It can't be used
> Jan> when Emacs is not compiled with Gtk+, so there is no point in doing
> Jan> so.
> 
> There is still a difference in behavior between Emacs and other Gtk
> apps.
> 
> If I eval (make-frame '((fullscreen . fullboth))), it takes up the
> entire screen, hiding the panel.
> 
> However, when I run the roughly equivalent pygtk program which calls
> 'window.maximize()', I get the results I expect -- a maximized window
> where I can see the wm decorations and which does not hide the panel.

Guess I was mistaken.  Setting max height + width is not the same as setting 
fullscreen.

> 
> So, even if calling gtk_window_maximize is pointless, there is still
> an Emacs bug.
> 

It depends on your expectations :-).  But I will change fullboth to mean max 
width + height and I will add fullmax to mean "cover the screen" in CVS HEAD.

But I must test it on several window managers with several toolkits so it will 
take some time.

> Or, at the very least, a missing Emacs feature.  I did manage to think
> of a reason that the current behavior might be desirable: if I was
> using a presentation tool in Emacs (EPT), I might want this behavior.
> However, that is a specialized use; more frequently I would want plain
> Gtk-style "maximize".

As I recall, this was the initial motivation for fullscreen in the first place.

	Jan D.

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: fullcreen = fullboth yields undesirable behavior
  2007-09-24  7:02     ` Jan Djärv
@ 2007-09-24 14:42       ` Tom Tromey
  0 siblings, 0 replies; 7+ messages in thread
From: Tom Tromey @ 2007-09-24 14:42 UTC (permalink / raw)
  To: Jan Djärv; +Cc: emacs-pretest-bug

>>>>> "Jan" == Jan Djärv <jan.h.d@swipnet.se> writes:

>> Or, at the very least, a missing Emacs feature.  I did manage to think
>> of a reason that the current behavior might be desirable: if I was
>> using a presentation tool in Emacs (EPT), I might want this behavior.
>> However, that is a specialized use; more frequently I would want plain
>> Gtk-style "maximize".

Jan> As I recall, this was the initial motivation for fullscreen in
Jan> the first place.

Yeah.  FWIW at the present moment I have a use for both approaches.

For a presentation I'm writing, I want "really use the whole screen,
covering the panel".

But for debugging with gdba, I want my wrapper to be able to create a
maximized "debug" frame that does not obscure the panel.

Thanks for looking at this.

Tom

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2007-09-24 14:42 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-09-21 15:01 fullcreen = fullboth yields undesirable behavior Tom Tromey
2007-09-22 13:28 ` Jan Djärv
2007-09-22 13:56   ` Tom Tromey
2007-09-22 17:41     ` Henrik Enberg
2007-09-24  6:06       ` Jan Djärv
2007-09-24  7:02     ` Jan Djärv
2007-09-24 14:42       ` Tom Tromey

Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.