unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
* New Lucid menus
@ 2010-04-16  0:54 Stefan Monnier
  2010-04-16  7:34 ` Jan D.
  2010-04-17 18:29 ` Jan Djärv
  0 siblings, 2 replies; 3+ messages in thread
From: Stefan Monnier @ 2010-04-16  0:54 UTC (permalink / raw)
  To: emacs-devel

I really like the antialiased fonts in the Lucid menus, but the code
still has some problems:
- emacs -Q followed by C-mouse-3 gets us straight to a segfault because
  of a "childs[0] = 0;" where childs has just been initialised to NULL.
  But even after removing this assignment I still get some assertion
  failure:

   % emacs -Q
   C-down-mouse-2
   ...move mouse down through the menu (making the submenus show up) and
   then back up to just above the menu title...
   ...release the mouse-2 button outside the menu

  I then get an assertion failure at insdel.c:2046 because
  "XWINDOW (selected_window)->buffer" doesn't hold a buffer apparently :-(

- when I move the mouse through the menubar's submenus, they flicker like
  crazy: they seem to be constantly redrawn.


        Stefan




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

* Re: New Lucid menus
  2010-04-16  0:54 New Lucid menus Stefan Monnier
@ 2010-04-16  7:34 ` Jan D.
  2010-04-17 18:29 ` Jan Djärv
  1 sibling, 0 replies; 3+ messages in thread
From: Jan D. @ 2010-04-16  7:34 UTC (permalink / raw)
  To: Stefan Monnier; +Cc: emacs-devel

Stefan Monnier wrote:
> I really like the antialiased fonts in the Lucid menus, but the code
> still has some problems:
> - emacs -Q followed by C-mouse-3 gets us straight to a segfault because
>   of a "childs[0] = 0;" where childs has just been initialised to NULL.
>   But even after removing this assignment I still get some assertion
>   failure:
> 
>    % emacs -Q
>    C-down-mouse-2
>    ...move mouse down through the menu (making the submenus show up) and
>    then back up to just above the menu title...
>    ...release the mouse-2 button outside the menu
> 
>   I then get an assertion failure at insdel.c:2046 because
>   "XWINDOW (selected_window)->buffer" doesn't hold a buffer apparently :-(

Hmm, that sounds strange.  I thought selected window always had a buffer.

> 
> - when I move the mouse through the menubar's submenus, they flicker like
>   crazy: they seem to be constantly redrawn.
> 

That I don't see, but maybe my machine is faster?  I'll check it out.

BTW, shouldn't this be a bug report :-)

	Jan D.




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

* Re: New Lucid menus
  2010-04-16  0:54 New Lucid menus Stefan Monnier
  2010-04-16  7:34 ` Jan D.
@ 2010-04-17 18:29 ` Jan Djärv
  1 sibling, 0 replies; 3+ messages in thread
From: Jan Djärv @ 2010-04-17 18:29 UTC (permalink / raw)
  To: Stefan Monnier; +Cc: emacs-devel

Stefan Monnier skrev:
> I really like the antialiased fonts in the Lucid menus, but the code
> still has some problems:
> - emacs -Q followed by C-mouse-3 gets us straight to a segfault because
>   of a "childs[0] = 0;" where childs has just been initialised to NULL.
>   But even after removing this assignment I still get some assertion
>   failure:
> 
>    % emacs -Q
>    C-down-mouse-2
>    ...move mouse down through the menu (making the submenus show up) and
>    then back up to just above the menu title...
>    ...release the mouse-2 button outside the menu
> 
>   I then get an assertion failure at insdel.c:2046 because
>   "XWINDOW (selected_window)->buffer" doesn't hold a buffer apparently :-(

I can not reprocude this, it must be timing.  Does it happen always?
Do I need ENABLE_CHECKING? I have enable-asserts.  I guess this isn't related 
to menu code, as the menu has popped down and control has been passed back to 
Emacs core (i.e. insdel.c).

> 
> - when I move the mouse through the menubar's submenus, they flicker like
>   crazy: they seem to be constantly redrawn.

The code did redraw all menus more or less on every mouse move.  This is OK 
for non-aa fonts as you can use XDrawImageString to make just one call to both 
clear and draw the text.  But for Xft two calls are needed, so flicker is more 
likely to be seen.  In any case, I didn't see it at all, it also depends on 
how fast your X server and computer is.

I fixed this so a lot fewer calls are made, and the whole menu is updated in 
one call.  It should be impossible to see flicker now (but you never know ... :-).

	Jan D.






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

end of thread, other threads:[~2010-04-17 18:29 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-04-16  0:54 New Lucid menus Stefan Monnier
2010-04-16  7:34 ` Jan D.
2010-04-17 18:29 ` Jan Djärv

Code repositories for project(s) associated with this public inbox

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

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).