Commit Graph

268 Commits

Author SHA1 Message Date
Carsten Haitzler 7fe18a6954 unbreak enlightenment compile due to eo usage
so e is using eo... and something in eo changes... and e fails to
compile entirely.... there are hacks to use eo... and this is not good.

eo is still in a beta state. that means any usage of it  can (and
will) break. this is a problem for e. if e uses eo, then eo breaks in
an efl upgrade, e breaks. we can't really have that. we already hit
this problem in terminology with the app server code in elm. so let's
just not use eo in e until it's stable.

this removes eo usage in all places, with the e_menu code having a
small isedje() func due to some of its code paths doing special things
based on if the obj is an edje one or not as opposed to just a simple
"only emit if its an edje obj".
2014-07-01 08:37:33 +09:00
Cedric BAIL 3f9af38da2 edje: remove use of deprecated functions. 2014-06-07 21:10:55 +02:00
Mike Blumenkrantz 67855482fc update eo class names, add hack for 1.10 class name compat 2014-06-04 09:28:17 -04:00
Mike Blumenkrantz d8aa488096 completely revert all eo/eolian usage
this was a neat experiment, but apparently it's not going to be usable for a long time in anything outside efl/elm

This reverts commits f87b9900fa, a49cede790, 81038f8d02, 47cfb31752.
2014-06-04 07:27:50 -04:00
Tom Hacohen f87b9900fa Update code to use the new class names generated by eolian. 2014-06-03 11:55:02 +01:00
Carsten Haitzler 4cce0080b8 fix resent eo changes to e that break updating labels and toggles
this fixes D1172
2014-04-18 09:53:00 +09:00
Mike Blumenkrantz daa98e867d fix lots of edje emits on non-edje objects 2014-03-27 16:47:18 -04:00
Mike Blumenkrantz 24296fa005 use eo to shut up harmless eo menu errors 2014-03-24 12:34:07 -04:00
Mike Blumenkrantz b8a3e1ed4f fix probably-impossible divide-by-zero in menu item layout
CID 1187924
2014-03-13 11:41:17 -04:00
Mike Blumenkrantz 9f3f5e29d1 bugfix: ensure use of non-garbage values for menu item icon placeholders
CID 1039769, 1039768
2014-03-13 11:11:14 -04:00
Daniel Kolesa 811c57cfaf enlightenment: fix menu placement 2014-01-30 12:17:54 +00:00
Mike Blumenkrantz 9a3ea2d1bb use regular comp grabs for menu 2014-01-22 22:14:33 -05:00
Mike Blumenkrantz dd34319a19 only deactivate all menus on mouse down if active menu is present
T798
2014-01-17 11:21:20 -05:00
Mike Blumenkrantz 12d7405a0f huge wl fixup (wayland clients actually working again)
* try to clear up build system for separating out ecore-x

* add #ifdefs for lots of ecore-x stuff

* break out some internal e wl functions for reuse in api

* store wl surface buffers as an inlist

* add protocol-specific client compositor data

** move lots of X client attributes here

* add pixmap type checks to a number of X-specific things, such as grabinput, to block them for non-X clients

* rearrange startup order to work with wayland

* move X screensaver code to e_comp_x

* flag modules still requiring X with -DNEED_X
2014-01-14 20:28:57 -05:00
Mike Blumenkrantz 86656e4df9 compositor rewrite / charlie-foxtrot situation
huge fustercluck commit because there wasn't really a way to separate out the changes. better to just rip it all out at once.

* compositor and window management completely rewritten. this was the goal for E19, but it pretty much required everything existing to be scrapped since it wasn't optimized, streamlined, or sensible. now instead of having the compositor strapped to the window manager like an outboard motor, it's housed more like an automobile engine.

** various comp structs have been merged into other places (eg. E_Comp_Zone is now just part of E_Zone where applicable), leading to a large deduplication of attributes

** awful E_Comp_Win is totally dead, having been replaced with e_comp_object smart objects which work just like normal canvas objects

** protocol-specific window management and compositor functionality is now kept exclusively in backend files

** e_pixmap api provides generic client finding and rendering api

** screen/xinerama screens are now provided directly by compositor on startup and re-set on change

** e_comp_render_update finally replaced with eina_tiler

** wayland compositor no longer creates X windows

** compositor e_layout removed entirely

* e_container is gone. this was made unnecessary in E18, but I kept it to avoid having too much code churn in one release. its sole purpose was to catch some events and handle window stacking, both of which are now just done by the compositor infra

* e_manager is just for screensaver and keybind stuff now, possibly remove later?

* e_border is gone along with a lot of its api. e_client has replaced it, and e_client has been rewritten completely; some parts may be similar, but the design now relies upon having a functional compositor

** window configuration/focus functions are all removed. all windows are now managed solely with evas_object_X functions on the "frame" member of a client, just as any other canvas object can be managed.

*** do NOT set interceptors on a client's comp_object. seriously.

* startup order rewritten: compositor now starts much earlier, other things just use attrs and members of the compositor

* ecore_x_pointer_xy_get usage replaced with ecore_evas_pointer_xy_get

* e_popup is totally gone, existing usage replaced by e_comp_object_util_add where applicable, otherwise just placed normally on the canvas

* deskmirror is (more) broken for now

* illume is totally fucked

* Ecore_X_Window replaced with Ecore_Window in most cases

* edge binding XWindows replaced with regular canvas objects

* some E_Win functionality has changed such that delete callbacks are now correctly called in ALL cases. various dialogs have been updated to not crash as a result

comp files and descriptions:

e_comp.c - overall compositor functions, rendering/update loop, shape cutting

e_comp_x.c - X window management and compositor functionality

e_comp_wl.c - Wayland surface management and compositor functionality

e_comp_canvas.c - general compositor canvas functions and utilities

e_comp_object.c - E_Client->frame member for managing clients as Evas_Objects, utility functions for adding objects to the compositor rendering systems

additional authors: ivan.briano@intel.com

feature: new compositor

removal: e_border, e_container, e_popup
2014-01-14 20:22:02 -05:00
Mike Blumenkrantz 25ab377291 unbreak menu dnd 2013-12-06 11:44:45 -05:00
Mike Blumenkrantz b3bc99d1b2 fix menu race condition crash related to screen edges
previously, this conditional would be called on most new submenus, even if the submenu's parent item was the previous item and its menu hadn't been set yet. hours of small mouse movements revealed that this should never be called when the parent item has not yet been set
2013-12-01 11:32:11 -05:00
Carsten Haitzler 2a5443b2cb menu - fix dangling menu job not nulling job ref
this should fix T579
2013-11-27 09:13:37 +09:00
Carsten Haitzler 19da294e8d gfix focus display in click-to-focus with keyboard triggered menus 2013-10-18 19:49:05 +09:00
discomfitor 8b57301add ensure post_deactivate menu callbacks run when hiding all menus
fixes shelf autohiding in some cases
2013-09-05 17:26:22 +01:00
Mike Blumenkrantz c507b36abf outdent small block in menu idler 2013-06-21 10:28:22 +01:00
Mike Blumenkrantz bc338ab390 fix menu crash when trying to show a menu that isn't ready to be shown 2013-06-21 10:27:18 +01:00
Mike Blumenkrantz bf12a34da0 fix a corner case menu crash when a submenu is created directly above its parent 2013-06-12 13:55:08 +01:00
Mike Blumenkrantz 595ba0859d fix menu item dnd grabber 2013-06-12 13:35:55 +01:00
discomfitor 0e0b20c075 block multiple menu deactivate callbacks 2013-05-18 19:39:52 +01:00
Mike Blumenkrantz 506cb8046d force mouse up feed on menu ungrab to ensure it gets received
issue described in T89
2013-05-08 13:26:25 +01:00
Mike Blumenkrantz f2fe52a074 menus are no longer enrolled in the same school as mexican jumping beans 2013-04-25 09:20:22 +01:00
Mike Blumenkrantz b702eddfd1 use new zoomap function to set solidness on comp win reshadow 2013-04-17 08:07:11 +01:00
Mike Blumenkrantz a4d13328e9 put zoomap shaped/solid edc stuff back for menus, let comp wins use it more generally 2013-04-17 06:32:49 +01:00
Mike Blumenkrantz b0260e98cb revert zoomap stuff from menus 2013-04-16 13:51:50 +01:00
Mike Blumenkrantz bd7dc3783d use e_zoomap_child_resize() in menu 2013-04-16 12:37:32 +01:00
Carsten Haitzler 390964512a move del handler to wrap. 2013-04-16 20:27:36 +09:00
Mike Blumenkrantz a0240e9f56 fix infinite loop on menu zoomap deletion 2013-04-16 12:24:40 +01:00
Carsten Haitzler 42ec9ea089 dont resize if a cw is there... 2013-04-16 20:14:12 +09:00
Carsten Haitzler e0e513f457 add zoomap so we get back our zooming comp client things with.. menu
for today. popups need doing... anything that bypasses the comp native
surface stuff needs this. :)
2013-04-16 20:07:36 +09:00
Carsten Haitzler c66e21aa9a me. valgrind. happy fun times together. methinks we should hasve more
people do this.
2013-03-30 14:11:07 +09:00
Carsten Haitzler a0d4c33691 oops printf-- 2013-03-29 22:03:09 +09:00
Carsten Haitzler 9deb05a832 fix menu flipping/flickering when menu bigger than screen. 2013-03-29 21:57:55 +09:00
Mike Blumenkrantz 03f9e7d6e7 add event rect for menus to ensure that clicks outside the menu will dismiss the menu 2013-03-20 09:50:47 +00:00
Mike Blumenkrantz 5d16b3f092 automatically mouse-up the comp evas when a menu is activated so future mouse events will work 2013-03-14 09:11:13 +00:00
Mike Blumenkrantz f6dc33f6aa always deactivate all active menus when manually activating another window 2013-03-13 07:47:46 +00:00
discomfitor 0d16ba68cd giant comp rejiggering commit #3
* e menus are now drawn directly onto the compositor canvas

* menu theme now requires at least one part which allows mouse events in every menu group (YOUR MENUS WILL NOT WORK IF YOU ARE USING A THEME WHICH LACKS THIS!!!!!!!)

* menus now also report dangling/zombie menus with slightly more accuracy now
2013-03-11 05:20:52 +00:00
Mike Blumenkrantz bf9933a336 E_FN_DEL macro renamed to E_FREE_FUNC with param order swapped for consistency 2013-02-22 13:18:30 +00:00
Mike Blumenkrantz 8b28b2f2f1 revert previous few commits related to e_menu, not meant to go in yet
SVN revision: 84083
2013-02-19 08:22:46 +00:00
Mike Blumenkrantz 7b4783ec15 menus are now drawn directly onto the compositor canvas
SVN revision: 84078
2013-02-19 08:09:05 +00:00
Mike Blumenkrantz fd0f6557ed fix crash when activating menu from start gadget after locking screen from start gadget menu
ticket #cedric


SVN revision: 83811
2013-02-11 08:35:28 +00:00
Mike Blumenkrantz aa6a2d173d giant comp rejiggering commit because anything smaller would have broken something:
* remove xwin for container canvas: now drawn directly on the compositor canvas

* added SHAPE_DEBUG define for bored developers

* bindings now use new e struct for mouse/wheel events

* container+zone now get mouse events from smart callbacks instead of x events

* rename comp api namespace

* change comp underlay theme to have a swallow for the wallpaper

* add names to all zone/container/comp objects to make debugging much easier

* some minor related updates to go along with this

SVN revision: 83752
2013-02-07 13:20:07 +00:00
Mike Blumenkrantz 9e8e755cdf formatting: all at once
SVN revision: 82625
2013-01-11 10:34:29 +00:00
Mike Blumenkrantz f927968340 e_menu_category_callback create callback parameter order has changed to be consistent with the rest of the efl: data param always comes first
SVN revision: 82547
2013-01-10 10:36:41 +00:00
Lucas De Marchi 0675dd03a0 e: rename option use_composite to use_shaped_win
In order to move composite inside the core we need to kill the
use_composite option. However in some places it is being used to switch
between ARGB and shaped windows. It doesn't make much sense to keep the
advanced/engine dialog to let the user toggle this options if we have
composite always enabledm, but lets allow the user to shoot
himself on the foot (for now).

Next step will be to move the comp module files to core so user can't
unload it anymore.



SVN revision: 82433
2013-01-09 03:21:25 +00:00
Mike Blumenkrantz 4a01ee16a0 add option for disabling icons in menus
ticket #2168


SVN revision: 82333
2013-01-07 09:35:30 +00:00
Mike Blumenkrantz 1bbcf1abb0 added function to hide all active menus, always hide menus when desklocking
SVN revision: 81925
2012-12-31 07:47:51 +00:00
Carsten Haitzler 2bcb066ccb oh this was always broken - mh simply was never set and being used...
until the 2nd loop. by then it ws too lae as ms was screwed.



SVN revision: 81895
2012-12-30 10:53:29 +00:00
Carsten Haitzler 7483f4bee9 allow for primary toplevel menus > screen height (or width) and
autoscroll them correctly. also raise the limits for menu sizes up to
30k or 2x zone height for menu item cutoff...



SVN revision: 81778
2012-12-28 03:28:25 +00:00
Carsten Haitzler ddbf106d6e ensur emensu dont go futzing about whileu use them... allocate
POTENTIAL space for submenus later. :)



SVN revision: 80751
2012-12-12 11:06:40 +00:00
Carsten Haitzler da9336c9dd fix menu box packing for submenu itms so when set up in specific
orners with a pre callback... its packed WITH fill



SVN revision: 80661
2012-12-11 14:37:17 +00:00
Mike Blumenkrantz 5a60f9dad8 further clamp menus to zone size
ticket #1895


SVN revision: 80138
2012-12-04 09:08:19 +00:00
Mike Blumenkrantz bd19ea1330 fix max menu size clamping
ticket #1691


SVN revision: 79800
2012-11-29 03:02:16 +00:00
Mike Blumenkrantz 36af3ea6bb only post-adjust menu position for non-submenus
ticket #1802


SVN revision: 79403
2012-11-16 22:09:48 +00:00
Mike Blumenkrantz 6d3694d4a9 improve menu positioning for menus which have not yet generated items at the time that they are made visible
SVN revision: 79326
2012-11-15 09:20:28 +00:00
Mike Blumenkrantz ca2501c4a1 move menu sizing to after menu actually gets sized to prevent multiple resizes
SVN revision: 79323
2012-11-15 08:57:01 +00:00
Mike Blumenkrantz 0bc2c8a7d8 only size/swallow menu icons once
SVN revision: 79278
2012-11-14 10:35:38 +00:00
Mike Blumenkrantz 0c0605da1e pack before thaw so we don't calc twice
SVN revision: 79277
2012-11-14 10:27:27 +00:00
Mike Blumenkrantz 0cb7e8e3f3 finally fix annoying submenu offset bug
ticket #1691


SVN revision: 78854
2012-11-02 11:56:32 +00:00
Mike Blumenkrantz 523597cdcb create default apps menu on init, don't free efreet menus on shutdown to prevent race condition triggered by people with superhuman menu navigation abilities
SVN revision: 76895
2012-09-20 08:57:36 +00:00
Mike Blumenkrantz 52c94bac89 app menus now generate themselves (top-most menu anyway) in threads to eliminate annoying stutter when scrolling through main menu
SVN revision: 76849
2012-09-19 10:15:03 +00:00
Mike Blumenkrantz 491c03fcfe prevent menus without any items from realizing at all
SVN revision: 76848
2012-09-19 10:05:41 +00:00
Mike Blumenkrantz 9574de56de fix stringshare usage in menu items
SVN revision: 76846
2012-09-19 07:20:26 +00:00
Mike Blumenkrantz 0baad3fe70 simplify extension checking
SVN revision: 76845
2012-09-19 07:16:54 +00:00
Mike Blumenkrantz 414db11d31 add some hacks to prevent spurious mouse movement events from breaking the universe when generating menus
ticket #1492


SVN revision: 76459
2012-09-11 11:55:08 +00:00
Mike Blumenkrantz b45316163f add menu function to activate currently active menu item
SVN revision: 76108
2012-09-04 07:01:09 +00:00
Mike Blumenkrantz 18fa14a855 add menu function for returning current active menu item
SVN revision: 76107
2012-09-04 06:17:38 +00:00
Mike Blumenkrantz 9a03e0085d fix longstanding-but-unnoticed issue where submenus would not always be freed, also related issue where active menus would be freed in the wrong order, resulting in double frees in very rare circumstances
SVN revision: 75839
2012-08-30 07:04:53 +00:00
Mike Blumenkrantz cb7dd887b4 fix annoying flickering of submenus when moving mouse between submenu and parent
SVN revision: 75789
2012-08-28 12:52:17 +00:00
Mike Blumenkrantz fd1f67375e add missing consts
SVN revision: 75777
2012-08-28 10:54:58 +00:00
Mike Blumenkrantz 09387b5106 add missing const to menu functions
SVN revision: 75548
2012-08-22 13:02:08 +00:00
Carsten Haitzler a3df76badf limit menus to 2048x2048 due to them now being abused for filemanager...
SVN revision: 74992
2012-08-08 06:15:49 +00:00
Mike Blumenkrantz 7c004097f6 unbreak menus again
SVN revision: 74910
2012-08-06 08:39:39 +00:00
Mike Blumenkrantz b270841119 revert all menu idler work: it greatly improved responsiveness but had too many corner cases where things look weird, so I guess we can all just deal with slow menus
note: this mainly affects the Files submenus


SVN revision: 74906
2012-08-06 08:16:14 +00:00
Mike Blumenkrantz cba00ee07f don't reposition menu in idler if it's a submenu
SVN revision: 74874
2012-08-04 08:33:21 +00:00
Mike Blumenkrantz 03a92c1ad9 disable menu idler drawing behavior when compositing to prevent slowdown from pixmap resizing
reduce e menu object resize count to 2: an initial guestimate extrapolated from first-drawn menu item sizes, then the final resize at the end once all the items are actually drawn
this should dramatically improve performance (again) and eliminate the "animation" that some users were seeing over the past couple days, which was really just the idler resizing the menu as it drew the items. now we populate the items on the idler without resizing the menu until the very end, which should produce the intended effect of "populating" the menu for very large/slow menus
lastly, there's still a fun positioning bug that I'm hunting down which will (rarely) make VERY large menus jump around a bit. it's very unlikely that anyone will spot this before I have fixed it


SVN revision: 74873
2012-08-04 08:20:01 +00:00
Mike Blumenkrantz 652422bce6 adding/deleting submenu item after menu item exists now properly updates the realized item
this should fix misleading items in the Files menu


SVN revision: 74828
2012-08-03 09:11:15 +00:00
Mike Blumenkrantz 370614345e force menu to always draw some items during idler, also greatly improve menu positioning
SVN revision: 74822
2012-08-03 08:33:57 +00:00
Mike Blumenkrantz 031fc80e2f clean up my earlier gadcon/menu idler work to be functional, thanks to jeffdameth for pointing it out
SVN revision: 74786
2012-08-02 07:20:51 +00:00
Mike Blumenkrantz 51ce8b4519 menus now realize their items using idlers to improve responsiveness when loading large/complex menus
SVN revision: 74713
2012-08-01 07:08:06 +00:00
Mike Blumenkrantz c760aad6b2 actually apply menu title changes when they occur
SVN revision: 74628
2012-07-31 09:11:23 +00:00
Mike Blumenkrantz 524a6da1f7 on e menu thaw, redraw the menu; this may work better as an idler
SVN revision: 74589
2012-07-30 14:04:07 +00:00
Mike Blumenkrantz d456775996 allow submenus to call their activation functions if they exist
SVN revision: 74588
2012-07-30 13:40:30 +00:00
Mike Blumenkrantz 7caeaff237 not sure why we're searching menu items twice here
SVN revision: 74587
2012-07-30 13:30:08 +00:00
Mike Blumenkrantz d706d72905 add const to param
SVN revision: 74582
2012-07-30 11:55:43 +00:00
Mike Blumenkrantz cfe425367a fix keyboard navigation of menus where the first item of a submenu is disabled
SVN revision: 72599
2012-06-21 12:09:08 +00:00
Mike Blumenkrantz 5bac59d8e3 formatting
SVN revision: 72568
2012-06-21 07:11:47 +00:00
Vincent Torri c3b0637802 e17: whitespaces--
SVN revision: 72561
2012-06-21 06:19:43 +00:00
Cedric BAIL 2d0970da9a e: warning--.
SVN revision: 70751
2012-05-04 02:34:56 +00:00
Christopher Michael 5047abf5a6 E: Properly use __UNUSED__ in menu code.
SVN revision: 69569
2012-03-22 18:11:48 +00:00
Carsten Haitzler cdb864ed8e remove all traces of selecting engine in e17 - wont actuallly ever be
needed beyond compositor. :)



SVN revision: 66513
2011-12-26 06:24:59 +00:00
Hannes Janetzek 91907d749d e17/menu: set icon scale size
SVN revision: 63200
2011-09-05 14:52:32 +00:00
Hannes Janetzek 7f457f1911 e17: add option to have gadcon client settings menu in toplevel again.
added e_menu_item_new_relative(E_Menu, E_Menu_Item *rel) which appends 
 new item to rel or prepends it when rel is NULL.

changed e_gadcon_util_client_menu_append to to take only the gadget menu
 and returns the new toplevel menu that should be shown by gcc
 depending on the setting this is a new menu with gadget menu as submenu
 or the gadet_menu with gadget menu items appended

updated e-modules-extra comes in a minute


SVN revision: 57826
2011-03-17 17:08:36 +00:00
Carsten Haitzler f09e917e18 fix case where we could have x fatal stuff happen during shutdown or
we try use x on shutdown when x io fatal conditions have happened.
x_fatal flag around for that now too. tested. seems to now be happy
and not cause aborts on shutdown when x has gone.



SVN revision: 57075
2011-02-16 05:20:13 +00:00
Mike Blumenkrantz 94578724bd avoid possible strlen(NULL)
SVN revision: 56144
2011-01-16 01:11:46 +00:00