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
- uses autoclose_popup->key_data as autoclose_popup->key_cb data
key_data is provided at cb registration through e_popup_autoclose(…)
- re-enable _mixer_popup_key_down_cb
_populate_channel_editor:
use app->sys_card_name instead of
e_mod_mixer_card_name_get _populate_channels:
select default channel or first one
_create_cards:
do not reselect card and channel
e_mixer_app_dialog_select:
cleanup, remove unused _find_card_by_name and _find_channel_by_name
_mixer_popup_cb_mixer:
do not modifiy current selection on popup
capabilities is a bitmap with the following defined bits:
E_MIXER_CHANNEL_CAN_MUTE 0x01
E_MIXER_CHANNEL_IS_MONO 0x02
E_MIXER_CHANNEL_HAS_CAPTURE 0x04
E_MIXER_CHANNEL_HAS_PLAYBACK 0x08
E_Mixer_Channel is only used within audio subsystems
e_mod_mixer_channel_info_get_by_name returns a E_Mixer_Channel_Info
use e_mod_mixer_channel_info_free to free a single channel_info
* added a number of new e_comp functions and macros
* options for disabling effects on objects: this option does not currently have any effect
* all modules which used gadcon popups have been adjusted
* all modules which used input windows to detect close events for gadcon popups have been adjusted to use new popup autoclose functionality
* shelves are now always drawn on the compositor canvas, meaning objects will never get clipped by the shelf (ticket #1810)
* shelves no longer have an event object
SVN revision: 84060
Don't unref the messages after calling edbus_*_send() since edbus
automatically unrefs them. It was also impressive the number of places
that were not unrefing the message when they should.
SVN revision: 82808
Subject: [E-devel] mixer module segv patch
- prevent segv while playing with controls when a card with empty
channel list is selected (ie webcam)
SVN revision: 81506
Subject: [E-devel] mixer module alsa input and mono patch
- fixes the input channel detection
- if channel is mono force right to 0, disable right slider and lock
- add missing dummy implementation of e_mixer_system_is_mono
SVN revision: 81317
This commit make E go crazy and use 100% all time. Reading the code,
we do check the returned value, but discard it without looking at it
in many case. A proper review of that piece of code to fix potential
memory leak and avoid reusing dead pointer would be a must.
SVN revision: 80915
* remove BAD_CH_MAPPING nonsense (fixes volume setting bugs since whoever added it broke them in doing so)
* queue successive volume state changes to avoid overloading the server; apply queue periodically
* update mixer gadget on timer after update events so we don't get insane amounts of mixer slider updates
SVN revision: 80438
module build chnages because its fundamentally broken. it DOES NOT
PRODUCE .SO FILES. just .la and .a files. the only reason u dont
notice is.. you ALREADY had .so's installed. i just got in from the
airport... synced and updated.. rebuilt and was met with all modules
not loading... literally - no .so's are installed int he module dirs.
try rm -rf the instaleld module tree.
regardless... this has to be reverted be3cause it's a major break. the
idea is right/nice. the implementation is causing... problems.
SVN revision: 79015
Get rid of warnings like below with recent automake (1.11 and newer):
src/bin/Makefile.am:6: warning: 'INCLUDES' is the old name for 'AM_CPPFLAGS' (or '*_CPPFLAGS')
src/bin/Makefile.am: installing './depcomp'
src/modules/access/Makefile.am:11: warning: 'INCLUDES' is the old name for 'AM_CPPFLAGS' (or '*_CPPFLAGS')
SVN revision: 78720
Just some groups and basic description for modules. I'm NOT going back
to this anytime soon, but would be VERY happy if people could do some
screenshots and put the images for each module in docs/img/ folder,
linking to them from each e_mod_main.h
SVN revision: 67362
*all sink operations now work on sources
*sources are now available for finding/watching
*ports are available
*active port is settable
SVN revision: 64513
instead of assume "front" take the first channel in the lsit - also
chanel id's stuffed inot pointers are no good if other code assume ptr
of NULL == no channel'mixer channel as it was a ptr... so incriment
id's by 1 in the interface to make sure id 0 doesnt happen.
SVN revision: 63578
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
If you have a Gadget and open the menu over it, all gadget specific options are under a separate submenu. The menu items which the Gadget sets theirself can be put on the main menu tree or on the Gadget submenu.
If you don't see a reason for this, check the ibar menu _before_ and _after_. :)
This api change broke all modules but i already fixed them all. Hope everything works... I also shortend text strings, etc, etc.
Hope you like it! :)
SVN revision: 52041
Apply badzero.cocci, badnull.coci and badnull2.cocci
This should convert all cases where there's a comparison to NULL to simpler
forms. This patch applies the following transformations:
code before patch ||code after patch
===============================================================
return a == NULL; return !a;
return a != NULL; return !!a;
func(a == NULL); func(!a);
func(a != NULL); func(!!a);
b = a == NULL; b = !a;
b = a != NULL; b = !!a;
b = a == NULL ? c : d; b = !a ? c : d;
b = a != NULL ? c : d; b = a ? c : d;
other cases:
a == NULL !a
a != NULL a
SVN revision: 51487
This fixes the bug when one adds a mixer, it becomes the default, then
removes it and use one of the global volume modifiers, it would use
the stale pointer.
TODO: a way to configure the volume independently of a shelf gadget.
SVN revision: 48593
- modules using e_configure_registry_add must be modified to
use registry path as window class for this to work
- fileman now uses e_remember to remember position instead of
handling it separately
- added option to window remember for remembering dialogs and
fileman windows automatically
SVN revision: 42607
1. Gadcon sities:
-- 'E_Gadcon_Site' enum to list all available sities,
-- added 'is_site' callback for distinguish gadcon sities,
-- 'e_gadcon_site_is_*' helpers written to use in gadget modules,
-- gadcon config dialogs modified to show only gadgets that appropriate
to selected gadcon site,
-- all gadget modules updated for using new callback.
When callback is not provided in module, then gadget can be used in
any gadcon site.
2. Filemanager:
-- added error icon to unexisting path dialog,
-- added callback 'func.abort' to 'E_Fm2_Op_Registry_Entry' to specify
abort operation sequence (if not provided, then operation is not
cancelable),
-- added parameter to 'e_fm2_op_registry_entry_add' to specify abort
method on construct 'E_Fm2_Op_Registry_Entry' or make non-cancelable
operation if this function is not provided,
-- added 'e_fm2_operation_abort' call to cancel efm2 operation,
-- added method '_e_fm2_operation_abort_internal' that represent efm2
default handler of operation cancelling,
-- 'done' and 'total' fields of 'E_Fm2_Op_Registry_Entry' changed to
off_t type, also all message handlers modified to work with it
(to show progress for large files correctly),
-- improved file operation progress processing,
-- added cancel button to operation progress gadget in filemanager window,
-- added delete file glyph to operation progress gadget,
-- improved status message for efm2 operation progress.
3. Filemanager slave:
-- fixed critical bug in message handling via stdin/stdout,
-- fixed critical bug in removing task from list,
-- improved 'E_FM_OP_ABORT' handling,
-- fix rollback counting on moving files.
4. Fileman_opinfo module:
-- a new theme writed: status string and gadget for view operation status
in summary and detail modes,
-- summary mode: operation glyph, state message, progressbar, abort button,
-- detail mode: all for summary + from filename, to filename,
-- summary/detailed button works as trigger,
-- added source of module theme and used images.
4. Pathbar module:
-- non-critical fix, just for safety.
Also patch contains several minor updates to serve main task.
SVN revision: 41224
-> this needs to be implemented
-> as short "solution" I changed the default text from "dummy" to "No ALSA mixer found!"
-> this gives the user at least a useful error message
SVN revision: 40149
between all ecore graphic engine to ease porting of application and reduce the amount of
specific code per engine. This patch does just that.
All your application should continu to work has previously, if it's not the case
please report any new behaviour regarding mouse and keyboard.
SVN revision: 39505
You will probably loose desktop icons until you get a fresh profile. Or you can edit the
.desktop files in .e/e/fileman/favorites (new icons name are: user-desktop, user-home, computer and user-temp)
Sorry for bothering... the next commit should be the last ;)
SVN revision: 39419
e_util_menu_item_fdo_icon_set to e_util_menu_item_theme_icon_set
As it looks for icons in e theme AND in fdo icon themes.
* Use the new function everywere instead of e_util_menu_item_edje_icon_set,
that is now marked as DEPRECATED
You should not see any difference with this commit. With the next few commit I'm
going to rename all the icons in the theme following fdo standard. I will not change
any icons, just rename them to match fdo ones.
SVN revision: 39370
But is so big i fear i could have broken some piece of code. So report any wrong
behaviour to me (cedric on #edevelop).
So moving e17 and efreet to eina_hash. With a little efreet API break so they
must come together.
SVN revision: 38185
* configure.ac:
- require C99 compiler;
- disable F77 and CXX checks;
- per-binary (program) flags, reduce linkage;
- every module can be optionally compiled;
* src/bin:
- Makefile.am: per-binary libs, reduce linkage;
- just add LIBS to LDADD and LIBADD, not LDFLAGS!
- e_sys_main.c: rewrite using proper eina, avoid linking with evas.
* src/modules:
- just add LIBS to LDADD and LIBADD, not LDFLAGS!
- every module can be optionally compiled;
SVN revision: 38009
Version 3 add the *client_class param to icon(),label(),id_new(), id_del()
and the *orient param to orient().
All the modules (with a gadcon_client) need to be fixed...just add the new params
to follow the EXTRA modules update.
SVN revision: 37450