Compare commits
51 Commits
master
...
devs/sachi
Author | SHA1 | Date |
---|---|---|
Iván Briano | e31e5917ef | |
Mike Blumenkrantz | d620f743f5 | |
discomfitor | a9bfd0ef30 | |
Mike Blumenkrantz | 368b60a657 | |
discomfitor | c0d681462d | |
discomfitor | 4c34a71120 | |
discomfitor | 2c64b4bf95 | |
discomfitor | 93e613b9b2 | |
discomfitor | 157e3908e9 | |
discomfitor | 48e2f15ae7 | |
Mike Blumenkrantz | aaef7869b5 | |
Mike Blumenkrantz | 279a03d4b7 | |
discomfitor | 5595587c56 | |
discomfitor | 156e6890dd | |
Mike Blumenkrantz | 3f7b6c1286 | |
Mike Blumenkrantz | cb8bc59900 | |
Mike Blumenkrantz | d2ded6cbf9 | |
Mike Blumenkrantz | c6578fa569 | |
Mike Blumenkrantz | 6029ebb85f | |
Mike Blumenkrantz | 198e5ea72b | |
Mike Blumenkrantz | 37b11d932d | |
Mike Blumenkrantz | b2969cb880 | |
Mike Blumenkrantz | 099b250275 | |
Mike Blumenkrantz | 2ec808f9d8 | |
Mike Blumenkrantz | b3bd012cec | |
Mike Blumenkrantz | 8e5e2fc2ef | |
Mike Blumenkrantz | 87b16dad61 | |
Mike Blumenkrantz | f714dbf7e4 | |
Mike Blumenkrantz | 8c97314cd2 | |
Mike Blumenkrantz | fbfcb526ad | |
Mike Blumenkrantz | 9f2c63a6bf | |
Mike Blumenkrantz | e7108dd1df | |
Mike Blumenkrantz | 625d2706d4 | |
Mike Blumenkrantz | 7cb9f39c5b | |
Mike Blumenkrantz | 52d27d9ecd | |
Mike Blumenkrantz | af0464a8c6 | |
Mike Blumenkrantz | 8c218fd28e | |
Mike Blumenkrantz | 711bc1b2a5 | |
Mike Blumenkrantz | 6999e7a0df | |
Mike Blumenkrantz | bf0aee21f3 | |
Mike Blumenkrantz | 7d3ab68335 | |
Mike Blumenkrantz | 95522343df | |
Mike Blumenkrantz | 29d792094f | |
Mike Blumenkrantz | d32e08064a | |
Mike Blumenkrantz | af9486c4c2 | |
Mike Blumenkrantz | f90e76db81 | |
Mike Blumenkrantz | 62a847e86f | |
Mike Blumenkrantz | b49aac025e | |
Mike Blumenkrantz | b997165ce9 | |
Mike Blumenkrantz | 529d1eb68d | |
Mike Blumenkrantz | db8e211134 |
94
Makefile.am
94
Makefile.am
|
@ -1,6 +1,7 @@
|
||||||
SUBDIRS = src data doc config
|
|
||||||
|
|
||||||
ACLOCAL_AMFLAGS = -I m4 ${ACLOCAL_FLAGS}
|
ACLOCAL_AMFLAGS = -I m4 ${ACLOCAL_FLAGS}
|
||||||
|
AUTOMAKE_OPTIONS = subdir-objects
|
||||||
|
|
||||||
|
SUBDIRS = .
|
||||||
|
|
||||||
if HAVE_PO
|
if HAVE_PO
|
||||||
|
|
||||||
|
@ -8,6 +9,11 @@ SUBDIRS += po
|
||||||
|
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
CLEANFILES =
|
||||||
|
DISTCLEANFILES =
|
||||||
|
INSTALL_DATA_HOOKS =
|
||||||
|
PHONIES =
|
||||||
|
|
||||||
MAINTAINERCLEANFILES = \
|
MAINTAINERCLEANFILES = \
|
||||||
ABOUT-NLS* \
|
ABOUT-NLS* \
|
||||||
Makefile.in \
|
Makefile.in \
|
||||||
|
@ -25,52 +31,45 @@ ltmain.sh \
|
||||||
missing \
|
missing \
|
||||||
$(PACKAGE_TARNAME)-$(PACKAGE_VERSION).tar.gz \
|
$(PACKAGE_TARNAME)-$(PACKAGE_VERSION).tar.gz \
|
||||||
$(PACKAGE_TARNAME)-$(PACKAGE_VERSION).tar.bz2 \
|
$(PACKAGE_TARNAME)-$(PACKAGE_VERSION).tar.bz2 \
|
||||||
$(PACKAGE_TARNAME)-$(PACKAGE_VERSION)-doc.tar.bz2 \
|
$(PACKAGE_TARNAME)-$(PACKAGE_VERSION)-doc.tar.bz2
|
||||||
m4/libtool.m4 \
|
|
||||||
m4/lt~obsolete.m4 \
|
EXTRA_DIST = \
|
||||||
m4/ltoptions.m4 \
|
config.rpath \
|
||||||
m4/ltsugar.m4 \
|
README \
|
||||||
m4/ltversion.m4 \
|
AUTHORS \
|
||||||
m4/codeset.m4 \
|
COPYING \
|
||||||
m4/gettext.m4 \
|
enlightenment.spec.in \
|
||||||
m4/glibc21.m4 \
|
enlightenment.spec \
|
||||||
m4/iconv.m4 \
|
enlightenment.pc \
|
||||||
m4/intdiv0.m4 \
|
pkgbuild/PKGBUILD \
|
||||||
m4/inttypes_h.m4 \
|
pkgbuild/enlightenment.install
|
||||||
m4/inttypes.m4 \
|
|
||||||
m4/inttypes-pri.m4 \
|
EDJE_CC = $(EDJE_CC_$(V))
|
||||||
m4/isc-posix.m4 \
|
EDJE_CC_ = $(EDJE_CC_$(AM_DEFAULT_VERBOSITY))
|
||||||
m4/lcmessage.m4 \
|
EDJE_CC_0 = @echo " EDJE_CC " $@; @edje_cc@
|
||||||
m4/lib-ld.m4 \
|
EDJE_CC_1 = @edje_cc@
|
||||||
m4/lib-link.m4 \
|
|
||||||
m4/lib-prefix.m4 \
|
EDJE_FLAGS_VERBOSE_ = $(EDJE_FLAGS_VERBOSE_$(AM_DEFAULT_VERBOSITY))
|
||||||
m4/nls.m4 \
|
EDJE_FLAGS_VERBOSE_0 =
|
||||||
m4/po.m4 \
|
EDJE_FLAGS_VERBOSE_1 = -v
|
||||||
m4/progtest.m4 \
|
EDJE_FLAGS = $(EDJE_FLAGS_VERBOSE_$(V)) \
|
||||||
m4/stdint_h.m4 \
|
@EDJE_DEF@
|
||||||
m4/uintmax_t.m4 \
|
|
||||||
m4/ulonglong.m4
|
include m4/Makefile.mk
|
||||||
|
|
||||||
if HAVE_PO
|
if HAVE_PO
|
||||||
|
|
||||||
MAINTAINERCLEANFILES += \
|
include po/Makefile.mk
|
||||||
po/boldquot.sed \
|
|
||||||
po/en@boldquot.header \
|
|
||||||
po/en@quot.header \
|
|
||||||
po/insert-header.sin \
|
|
||||||
po/Makefile.in.in \
|
|
||||||
po/Makevars.template \
|
|
||||||
po/quot.sed \
|
|
||||||
po/remove-potcdate.sin \
|
|
||||||
po/Rules-quot
|
|
||||||
|
|
||||||
endif
|
endif
|
||||||
|
|
||||||
DISTCHECK_CONFIGURE_FLAGS = --disable-systemd
|
DISTCHECK_CONFIGURE_FLAGS = --disable-systemd
|
||||||
|
|
||||||
EXTRA_DIST = config.rpath README AUTHORS COPYING \
|
include config/Makefile.mk
|
||||||
enlightenment.spec.in enlightenment.spec enlightenment.pc \
|
|
||||||
pkgbuild/PKGBUILD pkgbuild/enlightenment.install
|
include data/Makefile.mk
|
||||||
|
|
||||||
|
include src/Makefile.mk
|
||||||
|
|
||||||
filesdir = $(datadir)/enlightenment/
|
filesdir = $(datadir)/enlightenment/
|
||||||
files_DATA = AUTHORS COPYING
|
files_DATA = AUTHORS COPYING
|
||||||
|
@ -78,8 +77,15 @@ files_DATA = AUTHORS COPYING
|
||||||
pkgconfigdir = $(libdir)/pkgconfig
|
pkgconfigdir = $(libdir)/pkgconfig
|
||||||
pkgconfig_DATA = enlightenment.pc
|
pkgconfig_DATA = enlightenment.pc
|
||||||
|
|
||||||
.PHONY: doc
|
include doc/Makefile.mk
|
||||||
|
|
||||||
doc:
|
.PHONY: $(PHONIES)
|
||||||
@echo "entering doc/"
|
|
||||||
$(MAKE) -C doc doc
|
clean-local: doc-clean
|
||||||
|
rm -rf config/*.cfg config/*~
|
||||||
|
rm -rf config/standard/*.cfg config/standard/*~
|
||||||
|
rm -rf config/mobile/*.cfg config/mobile/*~
|
||||||
|
rm -rf config/default/*.cfg config/default/*~
|
||||||
|
rm -f data/themes/*.edj
|
||||||
|
|
||||||
|
install-data-hook: $(INSTALL_DATA_HOOKS)
|
||||||
|
|
|
@ -1,20 +0,0 @@
|
||||||
MAINTAINERCLEANFILES = Makefile.in
|
|
||||||
SUBDIRS = default standard mobile
|
|
||||||
|
|
||||||
EET_EET = @eet_eet@
|
|
||||||
|
|
||||||
EXTRA_DIST = profile.src
|
|
||||||
|
|
||||||
filesdir = $(datadir)/enlightenment/data/config
|
|
||||||
|
|
||||||
files_DATA = profile.cfg
|
|
||||||
|
|
||||||
SUFFIXES = .cfg
|
|
||||||
|
|
||||||
.src.cfg:
|
|
||||||
$(EET_EET) -i \
|
|
||||||
$(top_builddir)/config/$@ config \
|
|
||||||
$< 0
|
|
||||||
|
|
||||||
clean-local:
|
|
||||||
rm -rf *.cfg *~
|
|
|
@ -0,0 +1,25 @@
|
||||||
|
EET_EET = @eet_eet@
|
||||||
|
|
||||||
|
EXTRA_DIST += config/profile.src
|
||||||
|
|
||||||
|
configfilesdir = $(datadir)/enlightenment/data/config
|
||||||
|
|
||||||
|
configfiles_DATA = config/profile.cfg
|
||||||
|
|
||||||
|
SUFFIXES = .cfg
|
||||||
|
|
||||||
|
.src.cfg:
|
||||||
|
$(MKDIR_P) $(@D)
|
||||||
|
$(EET_EET) -e \
|
||||||
|
$(top_builddir)/$@ config \
|
||||||
|
$< 1
|
||||||
|
|
||||||
|
include config/default/Makefile.mk
|
||||||
|
include config/standard/Makefile.mk
|
||||||
|
include config/mobile/Makefile.mk
|
||||||
|
|
||||||
|
config/profile.cfg: config/profile.src
|
||||||
|
$(MKDIR_P) $(@D)
|
||||||
|
$(EET_EET) -i \
|
||||||
|
$(top_builddir)/$@ config \
|
||||||
|
$< 1
|
|
@ -1,27 +0,0 @@
|
||||||
MAINTAINERCLEANFILES = Makefile.in
|
|
||||||
|
|
||||||
EET_EET = @eet_eet@
|
|
||||||
|
|
||||||
EXTRA_DIST = \
|
|
||||||
profile.desktop \
|
|
||||||
enlightenment-default.png \
|
|
||||||
e.src \
|
|
||||||
e_bindings.src
|
|
||||||
|
|
||||||
filesdir = $(datadir)/enlightenment/data/config/default
|
|
||||||
files_DATA = \
|
|
||||||
profile.desktop \
|
|
||||||
enlightenment-default.png \
|
|
||||||
e.cfg \
|
|
||||||
e_bindings.cfg
|
|
||||||
|
|
||||||
SUFFIXES = .cfg
|
|
||||||
|
|
||||||
.src.cfg:
|
|
||||||
$(EET_EET) -e \
|
|
||||||
$(top_builddir)/config/default/$@ config \
|
|
||||||
$< 1
|
|
||||||
|
|
||||||
clean-local:
|
|
||||||
rm -rf *.cfg *~
|
|
||||||
|
|
|
@ -0,0 +1,12 @@
|
||||||
|
EXTRA_DIST += \
|
||||||
|
config/default/profile.desktop \
|
||||||
|
config/default/enlightenment-default.png \
|
||||||
|
config/default/e.src \
|
||||||
|
config/default/e_bindings.src
|
||||||
|
|
||||||
|
configdefaultfilesdir = $(datadir)/enlightenment/data/config/default
|
||||||
|
configdefaultfiles_DATA = \
|
||||||
|
config/default/profile.desktop \
|
||||||
|
config/default/enlightenment-default.png \
|
||||||
|
config/default/e.cfg \
|
||||||
|
config/default/e_bindings.cfg
|
|
@ -1,8 +1,7 @@
|
||||||
group "E_Config" struct {
|
group "E_Config" struct {
|
||||||
value "config_version" int: 1000011;
|
value "config_version" int: 1000014;
|
||||||
value "config_type" uint: 0; // this profile seems to just be super minimalist
|
value "config_type" uint: 0; // this profile seems to just be super minimalist
|
||||||
value "show_splash" int: 0;
|
value "show_splash" int: 0;
|
||||||
value "init_default_theme" string: "default.edj";
|
|
||||||
value "desktop_default_name" string: "%i-%i";
|
value "desktop_default_name" string: "%i-%i";
|
||||||
value "desktop_default_window_profile" string: "";
|
value "desktop_default_window_profile" string: "";
|
||||||
value "menus_scroll_speed" double: 1000.0;
|
value "menus_scroll_speed" double: 1000.0;
|
||||||
|
@ -31,12 +30,6 @@ group "E_Config" struct {
|
||||||
value "priority" int: 0;
|
value "priority" int: 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
group "themes" list {
|
|
||||||
group "E_Config_Theme" struct {
|
|
||||||
value "category" string: "theme";
|
|
||||||
value "file" string: "default.edj";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
value "window_placement_policy" int: 0;
|
value "window_placement_policy" int: 0;
|
||||||
value "window_grouping" int: 0;
|
value "window_grouping" int: 0;
|
||||||
value "focus_policy" int: 0;
|
value "focus_policy" int: 0;
|
||||||
|
|
|
@ -1,40 +0,0 @@
|
||||||
MAINTAINERCLEANFILES = Makefile.in
|
|
||||||
|
|
||||||
EET_EET = @eet_eet@
|
|
||||||
|
|
||||||
EXTRA_DIST = \
|
|
||||||
profile.desktop \
|
|
||||||
enlightenment-mobile.png \
|
|
||||||
e.src \
|
|
||||||
e_bindings.src \
|
|
||||||
module.battery.src \
|
|
||||||
module.illume-home.src \
|
|
||||||
module.illume-keyboard.src \
|
|
||||||
module.illume-indicator.src \
|
|
||||||
module.illume-softkey.src \
|
|
||||||
module.illume2.src \
|
|
||||||
module.conf.src
|
|
||||||
|
|
||||||
filesdir = $(datadir)/enlightenment/data/config/mobile
|
|
||||||
files_DATA = \
|
|
||||||
profile.desktop \
|
|
||||||
enlightenment-mobile.png \
|
|
||||||
e.cfg \
|
|
||||||
e_bindings.cfg \
|
|
||||||
module.battery.cfg \
|
|
||||||
module.illume-home.cfg \
|
|
||||||
module.illume-keyboard.cfg \
|
|
||||||
module.illume-indicator.cfg \
|
|
||||||
module.illume-softkey.cfg \
|
|
||||||
module.illume2.cfg \
|
|
||||||
module.conf.cfg
|
|
||||||
|
|
||||||
SUFFIXES = .cfg
|
|
||||||
|
|
||||||
.src.cfg:
|
|
||||||
$(EET_EET) -e \
|
|
||||||
$(top_builddir)/config/mobile/$@ config \
|
|
||||||
$< 1
|
|
||||||
|
|
||||||
clean-local:
|
|
||||||
rm -rf *.cfg *~
|
|
|
@ -0,0 +1,26 @@
|
||||||
|
EXTRA_DIST += \
|
||||||
|
config/mobile/profile.desktop \
|
||||||
|
config/mobile/enlightenment-mobile.png \
|
||||||
|
config/mobile/e.src \
|
||||||
|
config/mobile/e_bindings.src \
|
||||||
|
config/mobile/module.battery.src \
|
||||||
|
config/mobile/module.illume-home.src \
|
||||||
|
config/mobile/module.illume-keyboard.src \
|
||||||
|
config/mobile/module.illume-indicator.src \
|
||||||
|
config/mobile/module.illume-softkey.src \
|
||||||
|
config/mobile/module.illume2.src \
|
||||||
|
config/mobile/module.conf.src
|
||||||
|
|
||||||
|
configmobilefilesdir = $(datadir)/enlightenment/data/config/mobile
|
||||||
|
configmobilefiles_DATA = \
|
||||||
|
config/mobile/profile.desktop \
|
||||||
|
config/mobile/enlightenment-mobile.png \
|
||||||
|
config/mobile/e.cfg \
|
||||||
|
config/mobile/e_bindings.cfg \
|
||||||
|
config/mobile/module.battery.cfg \
|
||||||
|
config/mobile/module.illume-home.cfg \
|
||||||
|
config/mobile/module.illume-keyboard.cfg \
|
||||||
|
config/mobile/module.illume-indicator.cfg \
|
||||||
|
config/mobile/module.illume-softkey.cfg \
|
||||||
|
config/mobile/module.illume2.cfg \
|
||||||
|
config/mobile/module.conf.cfg
|
|
@ -1,8 +1,7 @@
|
||||||
group "E_Config" struct {
|
group "E_Config" struct {
|
||||||
value "config_version" int: 1000011;
|
value "config_version" int: 1000014;
|
||||||
value "config_type" uint: 1;
|
value "config_type" uint: 1;
|
||||||
value "show_splash" int: 1;
|
value "show_splash" int: 1;
|
||||||
value "init_default_theme" string: "default.edj";
|
|
||||||
value "desktop_default_name" string: "%i-%i";
|
value "desktop_default_name" string: "%i-%i";
|
||||||
value "desktop_default_window_profile" string: "mobile";
|
value "desktop_default_window_profile" string: "mobile";
|
||||||
value "menus_scroll_speed" double: 1000.0000000000000000000000000;
|
value "menus_scroll_speed" double: 1000.0000000000000000000000000;
|
||||||
|
@ -265,12 +264,6 @@ group "E_Config" struct {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
group "modules" list {
|
group "modules" list {
|
||||||
group "E_Config_Module" struct {
|
|
||||||
value "name" string: "conf_comp";
|
|
||||||
value "enabled" uchar: 1;
|
|
||||||
value "delayed" uchar: 0;
|
|
||||||
value "priority" int: -1000;
|
|
||||||
}
|
|
||||||
group "E_Config_Module" struct {
|
group "E_Config_Module" struct {
|
||||||
value "name" string: "illume2";
|
value "name" string: "illume2";
|
||||||
value "enabled" uchar: 1;
|
value "enabled" uchar: 1;
|
||||||
|
@ -337,6 +330,12 @@ group "E_Config" struct {
|
||||||
value "delayed" uchar: 1;
|
value "delayed" uchar: 1;
|
||||||
value "priority" int: 0;
|
value "priority" int: 0;
|
||||||
}
|
}
|
||||||
|
group "E_Config_Module" struct {
|
||||||
|
value "name" string: "lokker";
|
||||||
|
value "enabled" uchar: 1;
|
||||||
|
value "delayed" uchar: 0;
|
||||||
|
value "priority" int: 0;
|
||||||
|
}
|
||||||
group "E_Config_Module" struct {
|
group "E_Config_Module" struct {
|
||||||
value "name" string: "conf";
|
value "name" string: "conf";
|
||||||
value "enabled" uchar: 1;
|
value "enabled" uchar: 1;
|
||||||
|
@ -392,12 +391,6 @@ group "E_Config" struct {
|
||||||
value "priority" int: 0;
|
value "priority" int: 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
group "themes" list {
|
|
||||||
group "E_Config_Theme" struct {
|
|
||||||
value "category" string: "theme";
|
|
||||||
value "file" string: "default.edj";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
group "gadcons" list {
|
group "gadcons" list {
|
||||||
group "E_Config_Gadcon" struct {
|
group "E_Config_Gadcon" struct {
|
||||||
group "clients" list {
|
group "clients" list {
|
||||||
|
|
|
@ -1,43 +0,0 @@
|
||||||
MAINTAINERCLEANFILES = Makefile.in
|
|
||||||
|
|
||||||
EET_EET = @eet_eet@
|
|
||||||
|
|
||||||
EXTRA_DIST = \
|
|
||||||
profile.desktop \
|
|
||||||
enlightenment-standard.png \
|
|
||||||
e.src \
|
|
||||||
e_bindings.src \
|
|
||||||
module.battery.src \
|
|
||||||
module.cpufreq.src \
|
|
||||||
module.fileman.src \
|
|
||||||
module.ibar.src \
|
|
||||||
module.ibox.src \
|
|
||||||
module.pager.src \
|
|
||||||
module.temperature.src \
|
|
||||||
module.conf.src
|
|
||||||
|
|
||||||
filesdir = $(datadir)/enlightenment/data/config/standard
|
|
||||||
files_DATA = \
|
|
||||||
profile.desktop \
|
|
||||||
enlightenment-standard.png \
|
|
||||||
e.cfg \
|
|
||||||
e_bindings.cfg \
|
|
||||||
module.battery.cfg \
|
|
||||||
module.cpufreq.cfg \
|
|
||||||
module.fileman.cfg \
|
|
||||||
module.ibar.cfg \
|
|
||||||
module.ibox.cfg \
|
|
||||||
module.pager.cfg \
|
|
||||||
module.temperature.cfg \
|
|
||||||
module.conf.cfg
|
|
||||||
|
|
||||||
SUFFIXES = .cfg
|
|
||||||
|
|
||||||
.src.cfg:
|
|
||||||
$(EET_EET) -e \
|
|
||||||
$(top_builddir)/config/standard/$@ config \
|
|
||||||
$< 1
|
|
||||||
|
|
||||||
clean-local:
|
|
||||||
rm -rf *.cfg *~
|
|
||||||
|
|
|
@ -0,0 +1,28 @@
|
||||||
|
EXTRA_DIST += \
|
||||||
|
config/standard/profile.desktop \
|
||||||
|
config/standard/enlightenment-standard.png \
|
||||||
|
config/standard/e.src \
|
||||||
|
config/standard/e_bindings.src \
|
||||||
|
config/standard/module.battery.src \
|
||||||
|
config/standard/module.cpufreq.src \
|
||||||
|
config/standard/module.fileman.src \
|
||||||
|
config/standard/module.ibar.src \
|
||||||
|
config/standard/module.ibox.src \
|
||||||
|
config/standard/module.pager.src \
|
||||||
|
config/standard/module.temperature.src \
|
||||||
|
config/standard/module.conf.src
|
||||||
|
|
||||||
|
configstandardfilesdir = $(datadir)/enlightenment/data/config/standard
|
||||||
|
configstandardfiles_DATA = \
|
||||||
|
config/standard/profile.desktop \
|
||||||
|
config/standard/enlightenment-standard.png \
|
||||||
|
config/standard/e.cfg \
|
||||||
|
config/standard/e_bindings.cfg \
|
||||||
|
config/standard/module.battery.cfg \
|
||||||
|
config/standard/module.cpufreq.cfg \
|
||||||
|
config/standard/module.fileman.cfg \
|
||||||
|
config/standard/module.ibar.cfg \
|
||||||
|
config/standard/module.ibox.cfg \
|
||||||
|
config/standard/module.pager.cfg \
|
||||||
|
config/standard/module.temperature.cfg \
|
||||||
|
config/standard/module.conf.cfg
|
|
@ -1,8 +1,7 @@
|
||||||
group "E_Config" struct {
|
group "E_Config" struct {
|
||||||
value "config_version" int: 1000011;
|
value "config_version" int: 1000014;
|
||||||
value "config_type" uint: 3;
|
value "config_type" uint: 3;
|
||||||
value "show_splash" int: 1;
|
value "show_splash" int: 1;
|
||||||
value "init_default_theme" string: "default.edj";
|
|
||||||
value "desktop_default_name" string: "%i-%i";
|
value "desktop_default_name" string: "%i-%i";
|
||||||
value "desktop_default_window_profile" string: "standard";
|
value "desktop_default_window_profile" string: "standard";
|
||||||
value "menus_scroll_speed" double: 1000.0;
|
value "menus_scroll_speed" double: 1000.0;
|
||||||
|
@ -154,6 +153,7 @@ group "E_Config" struct {
|
||||||
value "icon_theme" string: "Tango";
|
value "icon_theme" string: "Tango";
|
||||||
value "icon_theme_overrides" uchar: 0;
|
value "icon_theme_overrides" uchar: 0;
|
||||||
value "desk_flip_animate_mode" int: 1;
|
value "desk_flip_animate_mode" int: 1;
|
||||||
|
value "desk_flip_animate_type" string: "auto/pane";
|
||||||
value "desk_flip_animate_interpolation" int: 0;
|
value "desk_flip_animate_interpolation" int: 0;
|
||||||
value "desk_flip_animate_time" double: 0.2;
|
value "desk_flip_animate_time" double: 0.2;
|
||||||
value "wallpaper_import_last_dev" string: "~/";
|
value "wallpaper_import_last_dev" string: "~/";
|
||||||
|
@ -603,10 +603,9 @@ group "E_Config" struct {
|
||||||
}
|
}
|
||||||
value "name" string: "shelf";
|
value "name" string: "shelf";
|
||||||
value "id" int: 1;
|
value "id" int: 1;
|
||||||
value "container" int: 0;
|
value "manager" int: 0;
|
||||||
value "zone" int: 0;
|
value "zone" int: 0;
|
||||||
value "layer" int: 200;
|
value "layer" int: 250;
|
||||||
value "popup" uchar: 1;
|
|
||||||
value "orient" int: 6;
|
value "orient" int: 6;
|
||||||
value "fit_along" uchar: 1;
|
value "fit_along" uchar: 1;
|
||||||
value "fit_size" uchar: 0;
|
value "fit_size" uchar: 0;
|
||||||
|
@ -867,19 +866,7 @@ group "E_Config" struct {
|
||||||
value "id" int: 115;
|
value "id" int: 115;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
group "themes" list {
|
|
||||||
group "E_Config_Theme" struct {
|
|
||||||
value "category" string: "theme";
|
|
||||||
value "file" string: "default.edj";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
group "modules" list {
|
group "modules" list {
|
||||||
group "E_Config_Module" struct {
|
|
||||||
value "name" string: "conf_comp";
|
|
||||||
value "enabled" uchar: 1;
|
|
||||||
value "delayed" uchar: 0;
|
|
||||||
value "priority" int: -1000;
|
|
||||||
}
|
|
||||||
group "E_Config_Module" struct {
|
group "E_Config_Module" struct {
|
||||||
value "name" string: "tasks";
|
value "name" string: "tasks";
|
||||||
value "enabled" uchar: 1;
|
value "enabled" uchar: 1;
|
||||||
|
@ -1066,6 +1053,12 @@ group "E_Config" struct {
|
||||||
value "delayed" uchar: 1;
|
value "delayed" uchar: 1;
|
||||||
value "priority" int: 0;
|
value "priority" int: 0;
|
||||||
}
|
}
|
||||||
|
group "E_Config_Module" struct {
|
||||||
|
value "name" string: "lokker";
|
||||||
|
value "enabled" uchar: 1;
|
||||||
|
value "delayed" uchar: 0;
|
||||||
|
value "priority" int: 0;
|
||||||
|
}
|
||||||
group "E_Config_Module" struct {
|
group "E_Config_Module" struct {
|
||||||
value "name" string: "notification";
|
value "name" string: "notification";
|
||||||
value "enabled" uchar: 1;
|
value "enabled" uchar: 1;
|
||||||
|
|
236
configure.ac
236
configure.ac
|
@ -2,11 +2,11 @@
|
||||||
##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##
|
##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##
|
||||||
m4_define([v_maj], [0])
|
m4_define([v_maj], [0])
|
||||||
m4_define([v_min], [18])
|
m4_define([v_min], [18])
|
||||||
m4_define([v_mic], [0])
|
m4_define([v_mic], [99])
|
||||||
dnl m4_define([v_rev], m4_esyscmd([(git rev-list --count HEAD 2>/dev/null || echo 0) | tr -d '\n']))dnl
|
m4_define([v_rev], m4_esyscmd([(git rev-list --count HEAD 2>/dev/null || echo 0) | tr -d '\n']))dnl
|
||||||
##-- When released, remove the dnl on the below line
|
##-- When released, remove the dnl on the below line
|
||||||
dnl m4_undefine([v_rev])
|
dnl m4_undefine([v_rev])
|
||||||
m4_define([relname], [0.17.99])
|
m4_define([relname], [0.18.99])
|
||||||
##-- When doing snapshots - change soname. remove dnl on below line
|
##-- When doing snapshots - change soname. remove dnl on below line
|
||||||
m4_define([relname], [ver-pre-01])
|
m4_define([relname], [ver-pre-01])
|
||||||
dnl m4_define([v_rel], [-release relname])
|
dnl m4_define([v_rel], [-release relname])
|
||||||
|
@ -24,7 +24,6 @@ AC_CONFIG_SRCDIR([configure.ac])
|
||||||
AC_CONFIG_MACRO_DIR([m4])
|
AC_CONFIG_MACRO_DIR([m4])
|
||||||
AC_CANONICAL_BUILD
|
AC_CANONICAL_BUILD
|
||||||
AC_CANONICAL_HOST
|
AC_CANONICAL_HOST
|
||||||
AC_ISC_POSIX
|
|
||||||
|
|
||||||
AC_CONFIG_HEADERS([config.h])
|
AC_CONFIG_HEADERS([config.h])
|
||||||
AH_TOP([
|
AH_TOP([
|
||||||
|
@ -36,14 +35,13 @@ AH_BOTTOM([
|
||||||
])
|
])
|
||||||
|
|
||||||
AM_INIT_AUTOMAKE([1.11 dist-bzip2 -Wno-portability])
|
AM_INIT_AUTOMAKE([1.11 dist-bzip2 -Wno-portability])
|
||||||
m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
|
AM_SILENT_RULES([yes])
|
||||||
|
|
||||||
AC_GNU_SOURCE
|
AC_USE_SYSTEM_EXTENSIONS
|
||||||
AC_PROG_MKDIR_P
|
AC_PROG_MKDIR_P
|
||||||
AC_C_BIGENDIAN
|
AC_C_BIGENDIAN
|
||||||
AC_PROG_CC_C99
|
AC_PROG_CC_C99
|
||||||
AM_PROG_CC_C_O
|
AM_PROG_CC_C_O
|
||||||
AC_C_CONST
|
|
||||||
AC_FUNC_ALLOCA
|
AC_FUNC_ALLOCA
|
||||||
AC_C___ATTRIBUTE__
|
AC_C___ATTRIBUTE__
|
||||||
|
|
||||||
|
@ -59,13 +57,13 @@ AC_DEFINE_UNQUOTED(VMIC, [v_mic], [Micro version])
|
||||||
AC_DEFINE_UNQUOTED(VREV, [v_rev], [Revison])
|
AC_DEFINE_UNQUOTED(VREV, [v_rev], [Revison])
|
||||||
version_info="lt_cur:lt_rev:lt_age"
|
version_info="lt_cur:lt_rev:lt_age"
|
||||||
release_info="v_rel"
|
release_info="v_rel"
|
||||||
AC_SUBST(version_info)
|
AC_SUBST([version_info])
|
||||||
AC_SUBST(release_info)
|
AC_SUBST([release_info])
|
||||||
##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##
|
##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##
|
||||||
##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##
|
##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##--##
|
||||||
|
|
||||||
release=relname
|
release=relname
|
||||||
AC_SUBST(release)
|
AC_SUBST([release])
|
||||||
|
|
||||||
PKG_PROG_PKG_CONFIG
|
PKG_PROG_PKG_CONFIG
|
||||||
|
|
||||||
|
@ -93,7 +91,7 @@ extern char **environ;
|
||||||
AC_DEFINE(HAVE_ENVIRON, 1, [Have environ var])
|
AC_DEFINE(HAVE_ENVIRON, 1, [Have environ var])
|
||||||
])
|
])
|
||||||
|
|
||||||
efl_version="1.8.0"
|
efl_version="1.8.99"
|
||||||
AC_SUBST(efl_version)
|
AC_SUBST(efl_version)
|
||||||
|
|
||||||
AC_CHECK_HEADERS([sys/timerfd.h sys/ptrace.h arpa/inet.h netinet/in.h])
|
AC_CHECK_HEADERS([sys/timerfd.h sys/ptrace.h arpa/inet.h netinet/in.h])
|
||||||
|
@ -112,11 +110,11 @@ if test "x$res" = "xno"; then
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
AC_SUBST(fnmatch_libs)
|
AC_SUBST([fnmatch_libs])
|
||||||
|
|
||||||
have_pam=no
|
have_pam=no
|
||||||
AC_ARG_ENABLE(pam,
|
AC_ARG_ENABLE(pam,
|
||||||
AC_HELP_STRING([--enable-pam], [enable PAM support @<:@default=detect@:>@]),
|
AS_HELP_STRING([--enable-pam], [enable PAM support @<:@default=detect@:>@]),
|
||||||
[want_pam=$enableval],
|
[want_pam=$enableval],
|
||||||
[want_pam=auto]
|
[want_pam=auto]
|
||||||
)
|
)
|
||||||
|
@ -131,11 +129,11 @@ if test "x$want_pam" != "xno" ; then
|
||||||
fi
|
fi
|
||||||
|
|
||||||
dnl AC_E_CHECK_PKG(VALGRIND, [valgrind >= 2.4.0], [], [:])
|
dnl AC_E_CHECK_PKG(VALGRIND, [valgrind >= 2.4.0], [], [:])
|
||||||
AC_SUBST(VALGRIND_CFLAGS)
|
AC_SUBST([VALGRIND_CFLAGS])
|
||||||
AC_SUBST(VALGRIND_LIBS)
|
AC_SUBST([VALGRIND_LIBS])
|
||||||
|
|
||||||
MODULE_ARCH="$host_os-$host_cpu-relname"
|
MODULE_ARCH="$host_os-$host_cpu-relname"
|
||||||
AC_SUBST(MODULE_ARCH)
|
AC_SUBST([MODULE_ARCH])
|
||||||
AC_DEFINE_UNQUOTED(MODULE_ARCH, "$MODULE_ARCH", "Module architecture")
|
AC_DEFINE_UNQUOTED(MODULE_ARCH, "$MODULE_ARCH", "Module architecture")
|
||||||
|
|
||||||
if test "x${bindir}" = 'xNONE'; then
|
if test "x${bindir}" = 'xNONE'; then
|
||||||
|
@ -147,7 +145,7 @@ if test "x${bindir}" = 'xNONE'; then
|
||||||
else
|
else
|
||||||
PACKAGE_BIN_DIR="${bindir}"
|
PACKAGE_BIN_DIR="${bindir}"
|
||||||
fi
|
fi
|
||||||
AC_SUBST(PACKAGE_BIN_DIR)
|
AC_SUBST([PACKAGE_BIN_DIR])
|
||||||
|
|
||||||
if test "x${libdir}" = 'xNONE'; then
|
if test "x${libdir}" = 'xNONE'; then
|
||||||
if test "x${prefix}" = "xNONE"; then
|
if test "x${prefix}" = "xNONE"; then
|
||||||
|
@ -158,7 +156,7 @@ if test "x${libdir}" = 'xNONE'; then
|
||||||
else
|
else
|
||||||
PACKAGE_LIB_DIR="${libdir}"
|
PACKAGE_LIB_DIR="${libdir}"
|
||||||
fi
|
fi
|
||||||
AC_SUBST(PACKAGE_LIB_DIR)
|
AC_SUBST([PACKAGE_LIB_DIR])
|
||||||
|
|
||||||
if test "x${prefix}" = "xNONE"; then
|
if test "x${prefix}" = "xNONE"; then
|
||||||
PACKAGE_DATA_DIR="${ac_default_prefix}/share/${PACKAGE}"
|
PACKAGE_DATA_DIR="${ac_default_prefix}/share/${PACKAGE}"
|
||||||
|
@ -169,15 +167,15 @@ else
|
||||||
LOCALE_DIR="${prefix}/share/locale"
|
LOCALE_DIR="${prefix}/share/locale"
|
||||||
PACKAGE_SYSCONF_DIR="${sysconfdir}"
|
PACKAGE_SYSCONF_DIR="${sysconfdir}"
|
||||||
fi
|
fi
|
||||||
AC_SUBST(PACKAGE_DATA_DIR)
|
AC_SUBST([PACKAGE_DATA_DIR])
|
||||||
AC_SUBST(LOCALE_DIR)
|
AC_SUBST([LOCALE_DIR])
|
||||||
AC_SUBST(PACKAGE_SYSCONF_DIR)
|
AC_SUBST([PACKAGE_SYSCONF_DIR])
|
||||||
|
|
||||||
#######################################
|
#######################################
|
||||||
## Simple X11 build/link
|
## Simple X11 build/link
|
||||||
|
|
||||||
AC_ARG_ENABLE(simple-x11,
|
AC_ARG_ENABLE(simple-x11,
|
||||||
AC_HELP_STRING([--enable-simple-x11], [enable simple x11 linking]),
|
AS_HELP_STRING([--enable-simple-x11], [enable simple x11 linking]),
|
||||||
[ want_evas_simple_x11=$enableval ]
|
[ want_evas_simple_x11=$enableval ]
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -198,8 +196,8 @@ dnl ],[
|
||||||
dnl AC_MSG_ERROR([Cannot find X headers and libraries.])
|
dnl AC_MSG_ERROR([Cannot find X headers and libraries.])
|
||||||
dnl ]
|
dnl ]
|
||||||
dnl )
|
dnl )
|
||||||
dnl AC_SUBST(x_cflags)
|
dnl AC_SUBST([x_cflags])
|
||||||
dnl AC_SUBST(x_libs)
|
dnl AC_SUBST([x_libs])
|
||||||
|
|
||||||
cf_cflags=""
|
cf_cflags=""
|
||||||
cf_libs=""
|
cf_libs=""
|
||||||
|
@ -213,8 +211,8 @@ AC_CHECK_HEADERS(CFBase.h,
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
CPPFLAGS="${PCPPFLAGS}"
|
CPPFLAGS="${PCPPFLAGS}"
|
||||||
AC_SUBST(cf_cflags)
|
AC_SUBST([cf_cflags])
|
||||||
AC_SUBST(cf_libs)
|
AC_SUBST([cf_libs])
|
||||||
|
|
||||||
PKG_CHECK_MODULES([BLUEZ], [bluez],
|
PKG_CHECK_MODULES([BLUEZ], [bluez],
|
||||||
[have_bluetooth="yes"],
|
[have_bluetooth="yes"],
|
||||||
|
@ -296,7 +294,7 @@ dnl fi
|
||||||
#ALL_LINGUAS="bg de eo es fi fr ja pt ru zh_CN hu sl it cs da sk sv nb nl zh_TW"
|
#ALL_LINGUAS="bg de eo es fi fr ja pt ru zh_CN hu sl it cs da sk sv nb nl zh_TW"
|
||||||
# a lot of .po's are broken
|
# a lot of .po's are broken
|
||||||
ALL_LINGUAS="bg ca cs da de el eo es fi fr fr_CH he hu it ja ko nb nl pl pt_BR ru sk sl sv tr zh_CN zh_TW"
|
ALL_LINGUAS="bg ca cs da de el eo es fi fr fr_CH he hu it ja ko nb nl pl pt_BR ru sk sl sv tr zh_CN zh_TW"
|
||||||
AC_SUBST(ALL_LINGUAS)
|
AC_SUBST([ALL_LINGUAS])
|
||||||
|
|
||||||
m4_ifdef([AM_GNU_GETTEXT_VERSION], [
|
m4_ifdef([AM_GNU_GETTEXT_VERSION], [
|
||||||
AM_GNU_GETTEXT_VERSION([0.17])
|
AM_GNU_GETTEXT_VERSION([0.17])
|
||||||
|
@ -315,7 +313,7 @@ have_po="yes"
|
||||||
have_po="no"
|
have_po="no"
|
||||||
])
|
])
|
||||||
])
|
])
|
||||||
AC_SUBST(LTLIBINTL)
|
AC_SUBST([LTLIBINTL])
|
||||||
if test "x$LIBINTL" = "x"; then
|
if test "x$LIBINTL" = "x"; then
|
||||||
LIBINTL="$INTLLIBS"
|
LIBINTL="$INTLLIBS"
|
||||||
fi
|
fi
|
||||||
|
@ -327,7 +325,7 @@ fi
|
||||||
AM_CONDITIONAL([HAVE_PO], [test "x${have_po}" = "xyes"])
|
AM_CONDITIONAL([HAVE_PO], [test "x${have_po}" = "xyes"])
|
||||||
|
|
||||||
AC_CHECK_LIB(dl, dlopen, dlopen_libs=-ldl)
|
AC_CHECK_LIB(dl, dlopen, dlopen_libs=-ldl)
|
||||||
AC_SUBST(dlopen_libs)
|
AC_SUBST([dlopen_libs])
|
||||||
|
|
||||||
AC_MSG_CHECKING([whether to install sysactions.conf])
|
AC_MSG_CHECKING([whether to install sysactions.conf])
|
||||||
AC_ARG_ENABLE([install-sysactions],
|
AC_ARG_ENABLE([install-sysactions],
|
||||||
|
@ -480,10 +478,7 @@ PKG_CHECK_MODULES(E_THUMB, [
|
||||||
|
|
||||||
PKG_CHECK_MODULES(E_GRABBER, [
|
PKG_CHECK_MODULES(E_GRABBER, [
|
||||||
eina >= ${efl_version}
|
eina >= ${efl_version}
|
||||||
ecore >= ${efl_version}
|
|
||||||
eet >= ${efl_version}
|
eet >= ${efl_version}
|
||||||
efreet >= ${efl_version}
|
|
||||||
ecore-x >= ${efl_version}
|
|
||||||
])
|
])
|
||||||
|
|
||||||
efm_requires="\
|
efm_requires="\
|
||||||
|
@ -591,10 +586,10 @@ e_libs="$E_LIBS $LIBINTL $fnmatch_libs $execinfo_libs"
|
||||||
e_cflags="-DUSE_E_CONFIG_H $E_CFLAGS"
|
e_cflags="-DUSE_E_CONFIG_H $E_CFLAGS"
|
||||||
e_configflags="-DUSE_E_CONFIG_H"
|
e_configflags="-DUSE_E_CONFIG_H"
|
||||||
|
|
||||||
AC_SUBST(e_libs)
|
AC_SUBST([e_libs])
|
||||||
AC_SUBST(e_cflags)
|
AC_SUBST([e_cflags])
|
||||||
AC_SUBST(e_configflags)
|
AC_SUBST([e_configflags])
|
||||||
AC_SUBST(requirements_e)
|
AC_SUBST([requirements_e])
|
||||||
|
|
||||||
PKG_CHECK_EXISTS([xkeyboard-config],[
|
PKG_CHECK_EXISTS([xkeyboard-config],[
|
||||||
xkb_base=`$PKG_CONFIG --variable=xkb_base xkeyboard-config 2>/dev/null`
|
xkb_base=`$PKG_CONFIG --variable=xkb_base xkeyboard-config 2>/dev/null`
|
||||||
|
@ -610,7 +605,7 @@ AC_ARG_WITH(profile,
|
||||||
AC_MSG_NOTICE([Enlightenment build profile set to $profile])
|
AC_MSG_NOTICE([Enlightenment build profile set to $profile])
|
||||||
EDJE_DEF="-DLOWRES_PDA=1 -DMEDIUMRES_PDA=2 -DHIRES_PDA=3 -DSLOW_PC=4 -DMEDIUM_PC=5 -DFAST_PC=6"
|
EDJE_DEF="-DLOWRES_PDA=1 -DMEDIUMRES_PDA=2 -DHIRES_PDA=3 -DSLOW_PC=4 -DMEDIUM_PC=5 -DFAST_PC=6"
|
||||||
EDJE_DEF=$EDJE_DEF" -DE18_PROFILE"=$profile
|
EDJE_DEF=$EDJE_DEF" -DE18_PROFILE"=$profile
|
||||||
AC_SUBST(EDJE_DEF)
|
AC_SUBST([EDJE_DEF])
|
||||||
|
|
||||||
AC_ARG_WITH(edje-cc,
|
AC_ARG_WITH(edje-cc,
|
||||||
[ --with-edje-cc=PATH specify a specific path to edje_cc],
|
[ --with-edje-cc=PATH specify a specific path to edje_cc],
|
||||||
|
@ -621,7 +616,7 @@ AC_ARG_WITH(edje-cc,
|
||||||
],[
|
],[
|
||||||
edje_cc=$(pkg-config --variable=prefix edje)/bin/edje_cc
|
edje_cc=$(pkg-config --variable=prefix edje)/bin/edje_cc
|
||||||
])
|
])
|
||||||
AC_SUBST(edje_cc)
|
AC_SUBST([edje_cc])
|
||||||
|
|
||||||
PKG_CHECK_MODULES(EET, [eet >= ${efl_version}])
|
PKG_CHECK_MODULES(EET, [eet >= ${efl_version}])
|
||||||
AC_ARG_WITH(eet-eet,
|
AC_ARG_WITH(eet-eet,
|
||||||
|
@ -633,7 +628,7 @@ AC_ARG_WITH(eet-eet,
|
||||||
],[
|
],[
|
||||||
eet_eet=$(pkg-config --variable=prefix eet)/bin/eet
|
eet_eet=$(pkg-config --variable=prefix eet)/bin/eet
|
||||||
])
|
])
|
||||||
AC_SUBST(eet_eet)
|
AC_SUBST([eet_eet])
|
||||||
|
|
||||||
AC_DEFINE(E_INTERNAL, 1, "This define can be used to wrap internal E stuff, as config.h isn't exported")
|
AC_DEFINE(E_INTERNAL, 1, "This define can be used to wrap internal E stuff, as config.h isn't exported")
|
||||||
|
|
||||||
|
@ -654,7 +649,7 @@ case "$host_os" in
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
|
|
||||||
AC_SUBST(BATTERY_LDFLAGS)
|
AC_SUBST([BATTERY_LDFLAGS])
|
||||||
AM_CONDITIONAL([HAVE_OPENBSD], [test "x${have_openbsd}" = "xyes"])
|
AM_CONDITIONAL([HAVE_OPENBSD], [test "x${have_openbsd}" = "xyes"])
|
||||||
|
|
||||||
AM_CONDITIONAL(HAVE_TEMPERATURE, false)
|
AM_CONDITIONAL(HAVE_TEMPERATURE, false)
|
||||||
|
@ -671,7 +666,7 @@ define([CHECK_MODULE_MUSIC_CONTROL],
|
||||||
|
|
||||||
##have_exchange=no
|
##have_exchange=no
|
||||||
##AC_ARG_ENABLE(exchange,
|
##AC_ARG_ENABLE(exchange,
|
||||||
## AC_HELP_STRING([--disable-exchange], [disable Exchange support @<:@default=detect@:>@]),
|
## AS_HELP_STRING([--disable-exchange], [disable Exchange support @<:@default=detect@:>@]),
|
||||||
## [want_exchange=$enableval],
|
## [want_exchange=$enableval],
|
||||||
## [want_exchange=auto]
|
## [want_exchange=auto]
|
||||||
##)
|
##)
|
||||||
|
@ -690,7 +685,7 @@ AM_CONDITIONAL(HAVE_EXCHANGE, false)
|
||||||
have_enotify=no
|
have_enotify=no
|
||||||
AM_CONDITIONAL([HAVE_ENOTIFY], [false])
|
AM_CONDITIONAL([HAVE_ENOTIFY], [false])
|
||||||
AC_ARG_ENABLE([enotify],
|
AC_ARG_ENABLE([enotify],
|
||||||
AC_HELP_STRING([--disable-enotify], [disable Enotify support @<:@default=detect@:>@]),
|
AS_HELP_STRING([--disable-enotify], [disable Enotify support @<:@default=detect@:>@]),
|
||||||
[e_cv_want_enotify=$enableval],
|
[e_cv_want_enotify=$enableval],
|
||||||
AC_CACHE_VAL([e_cv_want_enotify], [e_cv_want_enotify=yes])
|
AC_CACHE_VAL([e_cv_want_enotify], [e_cv_want_enotify=yes])
|
||||||
)
|
)
|
||||||
|
@ -718,6 +713,7 @@ define([CHECK_MODULE_NOTIFICATION],
|
||||||
fi
|
fi
|
||||||
])
|
])
|
||||||
|
|
||||||
|
|
||||||
AM_CONDITIONAL(HAVE_ALSA, false)
|
AM_CONDITIONAL(HAVE_ALSA, false)
|
||||||
define([CHECK_MODULE_MIXER],
|
define([CHECK_MODULE_MIXER],
|
||||||
[
|
[
|
||||||
|
@ -743,8 +739,8 @@ define([CHECK_MODULE_MIXER],
|
||||||
fi
|
fi
|
||||||
])
|
])
|
||||||
|
|
||||||
AC_SUBST(SOUND_CFLAGS)
|
AC_SUBST([SOUND_CFLAGS])
|
||||||
AC_SUBST(SOUND_LIBS)
|
AC_SUBST([SOUND_LIBS])
|
||||||
|
|
||||||
AM_CONDITIONAL(HAVE_ECONNMAN, false)
|
AM_CONDITIONAL(HAVE_ECONNMAN, false)
|
||||||
AM_CONDITIONAL(HAVE_DUMMY, false)
|
AM_CONDITIONAL(HAVE_DUMMY, false)
|
||||||
|
@ -753,8 +749,8 @@ define([CHECK_MODULE_CONNMAN],
|
||||||
AC_E_CHECK_PKG(ECONNMAN, [ eldbus >= $efl_version ], [], [CONNMAN=false])
|
AC_E_CHECK_PKG(ECONNMAN, [ eldbus >= $efl_version ], [], [CONNMAN=false])
|
||||||
dnl AC_E_CHECK_PKG(DUMMY, [ connman >= 1.0 ], [], [CONNMAN=false])
|
dnl AC_E_CHECK_PKG(DUMMY, [ connman >= 1.0 ], [], [CONNMAN=false])
|
||||||
])
|
])
|
||||||
AC_SUBST(ECONNMAN_CFLAGS)
|
AC_SUBST([ECONNMAN_CFLAGS])
|
||||||
AC_SUBST(ECONNMAN_LIBS)
|
AC_SUBST([ECONNMAN_LIBS])
|
||||||
|
|
||||||
AM_CONDITIONAL(HAVE_BLUEZ4, false)
|
AM_CONDITIONAL(HAVE_BLUEZ4, false)
|
||||||
AM_CONDITIONAL(HAVE_DUMMY, false)
|
AM_CONDITIONAL(HAVE_DUMMY, false)
|
||||||
|
@ -762,42 +758,50 @@ define([CHECK_MODULE_BLUEZ4],
|
||||||
[
|
[
|
||||||
AC_E_CHECK_PKG(BLUEZ4, [ eldbus ],)
|
AC_E_CHECK_PKG(BLUEZ4, [ eldbus ],)
|
||||||
])
|
])
|
||||||
AC_SUBST(EBLUEZ4_CFLAGS)
|
AC_SUBST([EBLUEZ4_CFLAGS])
|
||||||
AC_SUBST(EBLUEZ4_LIBS)
|
AC_SUBST([EBLUEZ4_LIBS])
|
||||||
|
|
||||||
|
have_wayland_only=no
|
||||||
|
AC_ARG_ENABLE([wayland-only],
|
||||||
|
AS_HELP_STRING([--enable-wayland-only],[enable wayland-only version of enlightenment @<:@default=disabled@:>@]),
|
||||||
|
[e_cv_want_wayland_only=$enableval],
|
||||||
|
[e_cv_want_wayland_only=no])
|
||||||
|
AC_MSG_CHECKING([whether wayland-only version is enabled])
|
||||||
|
AC_MSG_RESULT([${e_cv_want_wayland_only}])
|
||||||
|
|
||||||
have_wayland_clients=no
|
have_wayland_clients=no
|
||||||
AC_ARG_ENABLE([wayland-clients],
|
AC_ARG_ENABLE([wayland-clients],
|
||||||
AS_HELP_STRING([--enable-wayland-clients],[enable wayland clients in composite module @<:@default=disabled@:>@]),
|
AS_HELP_STRING([--enable-wayland-clients],[enable wayland clients in composite module @<:@default=disabled@:>@]),
|
||||||
[e_cv_want_wayland_clients=$enableval],
|
[e_cv_want_wayland_clients=$enableval],
|
||||||
[e_cv_want_wayland_clients=no])
|
[e_cv_want_wayland_clients=no])
|
||||||
|
|
||||||
AC_MSG_CHECKING([whether wayland client support is enabled])
|
AC_MSG_CHECKING([whether wayland client support is enabled])
|
||||||
AC_MSG_RESULT([${e_cv_want_wayland_clients}])
|
AC_MSG_RESULT([${e_cv_want_wayland_clients}])
|
||||||
|
|
||||||
if test "x$e_cv_want_wayland_clients" != "xno";then
|
have_wayland_egl=no
|
||||||
PKG_CHECK_MODULES([WAYLAND], [wayland-server >= 1.2.90 pixman-1 >= 0.3 xkbcommon >= 0.3.0],
|
AC_ARG_ENABLE([wayland-egl],
|
||||||
|
AS_HELP_STRING([--enable-wayland-egl],[enable wayland to render using EGL @<:@default=disabled@:>@]),
|
||||||
|
[e_cv_want_wayland_egl=$enableval],
|
||||||
|
[e_cv_want_wayland_egl=no])
|
||||||
|
AC_MSG_CHECKING([whether wayland EGL support is enabled])
|
||||||
|
AC_MSG_RESULT([${e_cv_want_wayland_egl}])
|
||||||
|
|
||||||
|
if test "x${e_cv_want_wayland_only}" != "xno" || test "x${e_cv_want_wayland_clients}" != "xno";then
|
||||||
|
PKG_CHECK_MODULES([WAYLAND], [ecore-wayland wayland-server pixman-1 xkbcommon],
|
||||||
[
|
[
|
||||||
have_wayland_clients=yes
|
have_wayland=yes
|
||||||
AC_DEFINE_UNQUOTED([HAVE_WAYLAND_CLIENTS],[1],[enable wayland client support])
|
AC_DEFINE_UNQUOTED([HAVE_WAYLAND],[1],[enable wayland support])
|
||||||
],
|
],
|
||||||
[have_wayland_clients=no])
|
[have_wayland=no])
|
||||||
else
|
else
|
||||||
have_wayland_clients=no
|
have_wayland=no
|
||||||
fi
|
fi
|
||||||
|
|
||||||
AM_CONDITIONAL([HAVE_WAYLAND_CLIENTS], [test "x${have_wayland_clients}" = "xyes"])
|
if test "x${have_wayland}" = "xyes"; then
|
||||||
|
if test "x${e_cv_want_wayland_clients}" != "xno"; then
|
||||||
have_wayland_egl=no
|
have_wayland_clients=yes
|
||||||
if test "x${have_wayland_clients}" = "xyes"; then
|
AC_DEFINE_UNQUOTED([HAVE_WAYLAND_CLIENTS],[1],[enable wayland clients in composite module])
|
||||||
AC_ARG_ENABLE([wayland-egl],
|
fi
|
||||||
AS_HELP_STRING([--enable-wayland-egl],[enable wayland clients to render using EGL @<:@default=disabled@:>@]),
|
if test "x${e_cv_want_wayland_egl}" != "xno";then
|
||||||
[e_cv_want_wayland_egl=$enableval],
|
|
||||||
[e_cv_want_wayland_egl=no])
|
|
||||||
|
|
||||||
AC_MSG_CHECKING([whether wayland client EGL support is enabled])
|
|
||||||
AC_MSG_RESULT([${e_cv_want_wayland_egl}])
|
|
||||||
|
|
||||||
if test "x$e_cv_want_wayland_egl" != "xno";then
|
|
||||||
PKG_CHECK_MODULES([WAYLAND_EGL], [egl >= 7.10],
|
PKG_CHECK_MODULES([WAYLAND_EGL], [egl >= 7.10],
|
||||||
[
|
[
|
||||||
have_wayland_egl=yes
|
have_wayland_egl=yes
|
||||||
|
@ -809,8 +813,24 @@ if test "x${have_wayland_clients}" = "xyes"; then
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
AM_CONDITIONAL([HAVE_WAYLAND], [test "x${have_wayland}" = "xyes"])
|
||||||
|
AM_CONDITIONAL([HAVE_WAYLAND_ONLY], [test "x${have_wayland_only}" = "xyes"])
|
||||||
|
AM_CONDITIONAL([HAVE_WAYLAND_CLIENTS], [test "x${have_wayland_clients}" = "xyes"])
|
||||||
AM_CONDITIONAL([HAVE_WAYLAND_EGL], [test "x${have_wayland_egl}" = "xyes"])
|
AM_CONDITIONAL([HAVE_WAYLAND_EGL], [test "x${have_wayland_egl}" = "xyes"])
|
||||||
|
|
||||||
|
PKG_CHECK_MODULES([ECORE_X], [ecore-x >= ${efl_version}])
|
||||||
|
if test -n "$ECORE_X_CFLAGS" ; then
|
||||||
|
ecore_x=true
|
||||||
|
else
|
||||||
|
ecore_x=false
|
||||||
|
fi
|
||||||
|
|
||||||
|
if test "x${ecore_x}" = "xtrue" && test -n "$WAYLAND_CFLAGS" ; then
|
||||||
|
wl_x11=true
|
||||||
|
else
|
||||||
|
wl_x11=false
|
||||||
|
fi
|
||||||
|
|
||||||
define([CHECK_MODULE_WL_DESKTOP_SHELL],
|
define([CHECK_MODULE_WL_DESKTOP_SHELL],
|
||||||
[
|
[
|
||||||
if test "x${have_wayland_clients}" = "xyes"; then
|
if test "x${have_wayland_clients}" = "xyes"; then
|
||||||
|
@ -821,19 +841,20 @@ define([CHECK_MODULE_WL_DESKTOP_SHELL],
|
||||||
])
|
])
|
||||||
AM_CONDITIONAL([HAVE_WL_DESKTOP_SHELL], [test "x${WL_DESKTOP_SHELL}" = "xtrue"])
|
AM_CONDITIONAL([HAVE_WL_DESKTOP_SHELL], [test "x${WL_DESKTOP_SHELL}" = "xtrue"])
|
||||||
|
|
||||||
define([CHECK_MODULE_WL_SCREENSHOT],
|
define([CHECK_MODULE_WL_FB],
|
||||||
[
|
[
|
||||||
if test "x${have_wayland_clients}" = "xyes"; then
|
if test "x${have_wayland_clients}" = "xyes"; then
|
||||||
AC_E_CHECK_PKG(WL_SCREENSHOT, [ ecore >= $efl_version ecore-wayland >= $efl_version eina >= $efl_version ], [WL_SCREENSHOT=true], [WL_SCREENSHOT=false])
|
AC_E_CHECK_PKG(WL_FB, [ ecore-fb >= $efl_version ecore >= $efl_version eina >= $efl_version ], [WL_FB=true], [WL_FB=false])
|
||||||
else
|
else
|
||||||
WL_SCREENSHOT=false
|
WL_FB=false
|
||||||
fi
|
fi
|
||||||
])
|
])
|
||||||
AM_CONDITIONAL([HAVE_WL_SCREENSHOT], [test "x${WL_SCREENSHOT}" = "xtrue"])
|
AM_CONDITIONAL([HAVE_WL_FB], [test "x${WL_FB}" = "xtrue"])
|
||||||
|
|
||||||
AC_E_OPTIONAL_MODULE([ibar], true)
|
AC_E_OPTIONAL_MODULE([ibar], true)
|
||||||
AC_E_OPTIONAL_MODULE([clock], true)
|
AC_E_OPTIONAL_MODULE([clock], true)
|
||||||
AC_E_OPTIONAL_MODULE([pager], true)
|
AC_E_OPTIONAL_MODULE([pager], true)
|
||||||
|
AC_E_OPTIONAL_MODULE([pager16], true)
|
||||||
AC_E_OPTIONAL_MODULE([battery], true, [CHECK_MODULE_BATTERY])
|
AC_E_OPTIONAL_MODULE([battery], true, [CHECK_MODULE_BATTERY])
|
||||||
AC_E_OPTIONAL_MODULE([temperature], true, [CHECK_MODULE_TEMPERATURE])
|
AC_E_OPTIONAL_MODULE([temperature], true, [CHECK_MODULE_TEMPERATURE])
|
||||||
AC_E_OPTIONAL_MODULE([notification], true, [CHECK_MODULE_NOTIFICATION])
|
AC_E_OPTIONAL_MODULE([notification], true, [CHECK_MODULE_NOTIFICATION])
|
||||||
|
@ -845,7 +866,6 @@ AC_E_OPTIONAL_MODULE([fileman], true)
|
||||||
AC_E_OPTIONAL_MODULE([fileman_opinfo], true)
|
AC_E_OPTIONAL_MODULE([fileman_opinfo], true)
|
||||||
AC_E_OPTIONAL_MODULE([wizard], true)
|
AC_E_OPTIONAL_MODULE([wizard], true)
|
||||||
AC_E_OPTIONAL_MODULE([conf], true)
|
AC_E_OPTIONAL_MODULE([conf], true)
|
||||||
AC_E_OPTIONAL_MODULE([conf_comp], true)
|
|
||||||
AC_E_OPTIONAL_MODULE([conf_wallpaper2], true)
|
AC_E_OPTIONAL_MODULE([conf_wallpaper2], true)
|
||||||
AC_E_OPTIONAL_MODULE([conf_theme], true, true)
|
AC_E_OPTIONAL_MODULE([conf_theme], true, true)
|
||||||
AC_E_OPTIONAL_MODULE([conf_intl], true)
|
AC_E_OPTIONAL_MODULE([conf_intl], true)
|
||||||
|
@ -865,24 +885,27 @@ AC_E_OPTIONAL_MODULE([gadman], true)
|
||||||
AC_E_OPTIONAL_MODULE([mixer], true, [CHECK_MODULE_MIXER])
|
AC_E_OPTIONAL_MODULE([mixer], true, [CHECK_MODULE_MIXER])
|
||||||
AC_E_OPTIONAL_MODULE([connman], true, [CHECK_MODULE_CONNMAN])
|
AC_E_OPTIONAL_MODULE([connman], true, [CHECK_MODULE_CONNMAN])
|
||||||
AC_E_OPTIONAL_MODULE([bluez4], true, [CHECK_MODULE_BLUEZ4])
|
AC_E_OPTIONAL_MODULE([bluez4], true, [CHECK_MODULE_BLUEZ4])
|
||||||
AC_E_OPTIONAL_MODULE([illume2], true)
|
#AC_E_OPTIONAL_MODULE([illume2], true)
|
||||||
AC_E_OPTIONAL_MODULE([syscon], true)
|
AC_E_OPTIONAL_MODULE([syscon], true)
|
||||||
AC_E_OPTIONAL_MODULE([everything], true)
|
AC_E_OPTIONAL_MODULE([everything], true)
|
||||||
AC_E_OPTIONAL_MODULE([systray], true)
|
AC_E_OPTIONAL_MODULE([systray], true)
|
||||||
AC_E_OPTIONAL_MODULE([appmenu], true)
|
AC_E_OPTIONAL_MODULE([appmenu], true)
|
||||||
AC_E_OPTIONAL_MODULE([quickaccess], true)
|
AC_E_OPTIONAL_MODULE([quickaccess], true)
|
||||||
AC_E_OPTIONAL_MODULE([teamwork], true)
|
AC_E_OPTIONAL_MODULE([teamwork], true)
|
||||||
AC_E_OPTIONAL_MODULE([shot], true)
|
AC_E_OPTIONAL_MODULE([lokker], true)
|
||||||
|
AC_E_OPTIONAL_MODULE([shot], true, $ecore_x)
|
||||||
AC_E_OPTIONAL_MODULE([backlight], true)
|
AC_E_OPTIONAL_MODULE([backlight], true)
|
||||||
AC_E_OPTIONAL_MODULE([tasks], true)
|
AC_E_OPTIONAL_MODULE([tasks], true)
|
||||||
AC_E_OPTIONAL_MODULE([conf_randr], true)
|
AC_E_OPTIONAL_MODULE([conf_randr], true, $ecore_x)
|
||||||
AC_E_OPTIONAL_MODULE([xkbswitch], true)
|
AC_E_OPTIONAL_MODULE([xkbswitch], true, $ecore_x)
|
||||||
AC_E_OPTIONAL_MODULE([tiling], true)
|
AC_E_OPTIONAL_MODULE([tiling], true)
|
||||||
AC_E_OPTIONAL_MODULE([access], true)
|
AC_E_OPTIONAL_MODULE([access], false, $ecore_x)
|
||||||
AC_E_OPTIONAL_MODULE([music_control], true, [CHECK_MODULE_MUSIC_CONTROL])
|
AC_E_OPTIONAL_MODULE([music_control], true, [CHECK_MODULE_MUSIC_CONTROL])
|
||||||
AC_E_OPTIONAL_MODULE([contact], true)
|
AC_E_OPTIONAL_MODULE([contact], false)
|
||||||
AC_E_OPTIONAL_MODULE([wl_desktop_shell], true, [CHECK_MODULE_WL_DESKTOP_SHELL])
|
AC_E_OPTIONAL_MODULE([wl_desktop_shell], true, [CHECK_MODULE_WL_DESKTOP_SHELL])
|
||||||
AC_E_OPTIONAL_MODULE([wl_screenshot], true, [CHECK_MODULE_WL_SCREENSHOT])
|
AC_E_OPTIONAL_MODULE([wl_x11], $have_wayland, $wl_x11)
|
||||||
|
AC_E_OPTIONAL_MODULE([wl_fb], $have_wayland, [CHECK_MODULE_WL_FB])
|
||||||
|
#AC_E_OPTIONAL_MODULE([wl_screenshot], true, [CHECK_MODULE_WL_SCREENSHOT])
|
||||||
|
|
||||||
HALT="/sbin/shutdown -h now"
|
HALT="/sbin/shutdown -h now"
|
||||||
REBOOT="/sbin/shutdown -r now"
|
REBOOT="/sbin/shutdown -r now"
|
||||||
|
@ -917,10 +940,10 @@ case "$host_os" in
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
AC_SUBST(HALT)
|
AC_SUBST([HALT])
|
||||||
AC_SUBST(REBOOT)
|
AC_SUBST([REBOOT])
|
||||||
AC_SUBST(SUSPEND)
|
AC_SUBST([SUSPEND])
|
||||||
AC_SUBST(HIBERNATE)
|
AC_SUBST([HIBERNATE])
|
||||||
|
|
||||||
m4_ifdef([v_mic],
|
m4_ifdef([v_mic],
|
||||||
[
|
[
|
||||||
|
@ -939,14 +962,11 @@ AC_OUTPUT([
|
||||||
Makefile
|
Makefile
|
||||||
enlightenment.spec
|
enlightenment.spec
|
||||||
enlightenment.pc
|
enlightenment.pc
|
||||||
src/Makefile
|
|
||||||
src/bin/Makefile
|
|
||||||
src/bin/e_fm_shared_types.h
|
src/bin/e_fm_shared_types.h
|
||||||
src/bin/e_fm/Makefile
|
|
||||||
src/modules/Makefile
|
|
||||||
src/modules/ibar/module.desktop
|
src/modules/ibar/module.desktop
|
||||||
src/modules/clock/module.desktop
|
src/modules/clock/module.desktop
|
||||||
src/modules/pager/module.desktop
|
src/modules/pager/module.desktop
|
||||||
|
src/modules/pager16/module.desktop
|
||||||
src/modules/battery/module.desktop
|
src/modules/battery/module.desktop
|
||||||
src/modules/temperature/module.desktop
|
src/modules/temperature/module.desktop
|
||||||
src/modules/notification/module.desktop
|
src/modules/notification/module.desktop
|
||||||
|
@ -977,24 +997,14 @@ src/modules/gadman/module.desktop
|
||||||
src/modules/mixer/module.desktop
|
src/modules/mixer/module.desktop
|
||||||
src/modules/connman/module.desktop
|
src/modules/connman/module.desktop
|
||||||
src/modules/bluez4/module.desktop
|
src/modules/bluez4/module.desktop
|
||||||
src/modules/illume2/doc/illume.dox
|
|
||||||
src/modules/illume2/module.desktop
|
|
||||||
src/modules/illume-home/module.desktop
|
|
||||||
src/modules/illume-home-toggle/module.desktop
|
|
||||||
src/modules/illume-softkey/module.desktop
|
|
||||||
src/modules/illume-keyboard/module.desktop
|
|
||||||
src/modules/illume-indicator/module.desktop
|
|
||||||
src/modules/illume-kbd-toggle/module.desktop
|
|
||||||
src/modules/illume-mode-toggle/module.desktop
|
|
||||||
src/modules/illume-bluetooth/module.desktop
|
|
||||||
src/modules/syscon/module.desktop
|
src/modules/syscon/module.desktop
|
||||||
src/modules/everything/module.desktop
|
src/modules/everything/module.desktop
|
||||||
src/modules/everything/everything.pc
|
src/modules/everything/everything.pc
|
||||||
src/modules/systray/module.desktop
|
src/modules/systray/module.desktop
|
||||||
src/modules/appmenu/module.desktop
|
src/modules/appmenu/module.desktop
|
||||||
src/modules/conf_comp/module.desktop
|
|
||||||
src/modules/quickaccess/module.desktop
|
src/modules/quickaccess/module.desktop
|
||||||
src/modules/teamwork/module.desktop
|
src/modules/teamwork/module.desktop
|
||||||
|
src/modules/lokker/module.desktop
|
||||||
src/modules/shot/module.desktop
|
src/modules/shot/module.desktop
|
||||||
src/modules/backlight/module.desktop
|
src/modules/backlight/module.desktop
|
||||||
src/modules/tasks/module.desktop
|
src/modules/tasks/module.desktop
|
||||||
|
@ -1005,31 +1015,25 @@ src/modules/music-control/module.desktop
|
||||||
src/modules/contact/module.desktop
|
src/modules/contact/module.desktop
|
||||||
src/modules/wl_desktop_shell/module.desktop
|
src/modules/wl_desktop_shell/module.desktop
|
||||||
src/modules/wl_screenshot/module.desktop
|
src/modules/wl_screenshot/module.desktop
|
||||||
data/Makefile
|
|
||||||
data/images/Makefile
|
|
||||||
data/flags/Makefile
|
|
||||||
data/favorites/Makefile
|
|
||||||
data/desktop/Makefile
|
|
||||||
data/input_methods/Makefile
|
|
||||||
data/xsession/Makefile
|
|
||||||
data/xsession/enlightenment.desktop
|
data/xsession/enlightenment.desktop
|
||||||
data/tools/Makefile
|
|
||||||
data/etc/Makefile
|
|
||||||
data/etc/sysactions.conf
|
data/etc/sysactions.conf
|
||||||
data/icons/Makefile
|
|
||||||
data/backgrounds/Makefile
|
|
||||||
data/units/Makefile
|
|
||||||
data/units/e18.service
|
data/units/e18.service
|
||||||
doc/Makefile
|
|
||||||
doc/Doxyfile
|
doc/Doxyfile
|
||||||
doc/e.dox
|
doc/e.dox
|
||||||
config/Makefile
|
|
||||||
config/default/Makefile
|
|
||||||
config/standard/Makefile
|
|
||||||
config/mobile/Makefile
|
|
||||||
$po_makefile_in
|
$po_makefile_in
|
||||||
])
|
])
|
||||||
|
|
||||||
|
#src/modules/illume2/doc/illume.dox
|
||||||
|
#src/modules/illume2/module.desktop
|
||||||
|
#src/modules/illume-home/module.desktop
|
||||||
|
#src/modules/illume-home-toggle/module.desktop
|
||||||
|
#src/modules/illume-softkey/module.desktop
|
||||||
|
#src/modules/illume-keyboard/module.desktop
|
||||||
|
#src/modules/illume-indicator/module.desktop
|
||||||
|
#src/modules/illume-kbd-toggle/module.desktop
|
||||||
|
#src/modules/illume-mode-toggle/module.desktop
|
||||||
|
#src/modules/illume-bluetooth/module.desktop
|
||||||
|
|
||||||
# report
|
# report
|
||||||
txt_strip() {
|
txt_strip() {
|
||||||
echo "[$]@" | sed -e 's/^[[ \t]]*\([[^ \t]]*\)[[ \t]]*$/\1/g'
|
echo "[$]@" | sed -e 's/^[[ \t]]*\([[^ \t]]*\)[[ \t]]*$/\1/g'
|
||||||
|
|
|
@ -1,14 +0,0 @@
|
||||||
MAINTAINERCLEANFILES = Makefile.in
|
|
||||||
SUBDIRS = \
|
|
||||||
images \
|
|
||||||
tools \
|
|
||||||
xsession \
|
|
||||||
input_methods \
|
|
||||||
etc \
|
|
||||||
icons \
|
|
||||||
backgrounds \
|
|
||||||
flags \
|
|
||||||
favorites \
|
|
||||||
desktop \
|
|
||||||
units
|
|
||||||
|
|
|
@ -0,0 +1,11 @@
|
||||||
|
include data/images/Makefile.mk
|
||||||
|
include data/tools/Makefile.mk
|
||||||
|
include data/xsession/Makefile.mk
|
||||||
|
include data/input_methods/Makefile.mk
|
||||||
|
include data/etc/Makefile.mk
|
||||||
|
include data/icons/Makefile.mk
|
||||||
|
include data/backgrounds/Makefile.mk
|
||||||
|
include data/flags/Makefile.mk
|
||||||
|
include data/favorites/Makefile.mk
|
||||||
|
include data/desktop/Makefile.mk
|
||||||
|
include data/units/Makefile.mk
|
|
@ -1,42 +0,0 @@
|
||||||
MAINTAINERCLEANFILES = Makefile.in
|
|
||||||
filesdir = $(datadir)/enlightenment/data/backgrounds
|
|
||||||
files_DATA = \
|
|
||||||
Brown_Rock_Hi.edj \
|
|
||||||
Colorful_Roses.edj \
|
|
||||||
Darkconcrete.edj \
|
|
||||||
Dark_Gradient.edj \
|
|
||||||
Grassy.edj \
|
|
||||||
Japanesemaple.edj \
|
|
||||||
Lakegrass.edj \
|
|
||||||
Light_Gradient.edj \
|
|
||||||
Mossstring.edj \
|
|
||||||
Motleyrock.edj \
|
|
||||||
Newgrowth.edj \
|
|
||||||
Orange_Roses.edj \
|
|
||||||
Pattern_Radial.edj \
|
|
||||||
Pattern_Vertical.edj \
|
|
||||||
Pattern_Vertical_Hi.edj \
|
|
||||||
Pine_Silhouettes.edj \
|
|
||||||
Purple_Flower_Bunch.edj \
|
|
||||||
Skywall.edj \
|
|
||||||
Stringflower.edj \
|
|
||||||
Wetgrass.edj \
|
|
||||||
Wetleaf.edj \
|
|
||||||
Whiterock.edj \
|
|
||||||
Hills.edj \
|
|
||||||
Light.edj \
|
|
||||||
Temple.edj \
|
|
||||||
Train.edj \
|
|
||||||
Curly_Leaves.edj \
|
|
||||||
Flower_Petals.edj \
|
|
||||||
Go_Away.edj \
|
|
||||||
Green_Stem.edj \
|
|
||||||
Leafy_Red.edj \
|
|
||||||
Ramen.edj \
|
|
||||||
Shady_Leaves.edj \
|
|
||||||
Windy_Palm.edj \
|
|
||||||
Lantern_Cluster.edj \
|
|
||||||
Wall_Lanterns.edj
|
|
||||||
|
|
||||||
|
|
||||||
EXTRA_DIST = $(files_DATA)
|
|
|
@ -0,0 +1,41 @@
|
||||||
|
backgroundfilesdir = $(datadir)/enlightenment/data/backgrounds
|
||||||
|
backgroundfiles_DATA = \
|
||||||
|
data/backgrounds/Brown_Rock_Hi.edj \
|
||||||
|
data/backgrounds/Colorful_Roses.edj \
|
||||||
|
data/backgrounds/Darkconcrete.edj \
|
||||||
|
data/backgrounds/Dark_Gradient.edj \
|
||||||
|
data/backgrounds/Grassy.edj \
|
||||||
|
data/backgrounds/Japanesemaple.edj \
|
||||||
|
data/backgrounds/Lakegrass.edj \
|
||||||
|
data/backgrounds/Light_Gradient.edj \
|
||||||
|
data/backgrounds/Mossstring.edj \
|
||||||
|
data/backgrounds/Motleyrock.edj \
|
||||||
|
data/backgrounds/Newgrowth.edj \
|
||||||
|
data/backgrounds/Orange_Roses.edj \
|
||||||
|
data/backgrounds/Pattern_Radial.edj \
|
||||||
|
data/backgrounds/Pattern_Vertical.edj \
|
||||||
|
data/backgrounds/Pattern_Vertical_Hi.edj \
|
||||||
|
data/backgrounds/Pine_Silhouettes.edj \
|
||||||
|
data/backgrounds/Purple_Flower_Bunch.edj \
|
||||||
|
data/backgrounds/Skywall.edj \
|
||||||
|
data/backgrounds/Stringflower.edj \
|
||||||
|
data/backgrounds/Wetgrass.edj \
|
||||||
|
data/backgrounds/Wetleaf.edj \
|
||||||
|
data/backgrounds/Whiterock.edj \
|
||||||
|
data/backgrounds/Hills.edj \
|
||||||
|
data/backgrounds/Light.edj \
|
||||||
|
data/backgrounds/Temple.edj \
|
||||||
|
data/backgrounds/Train.edj \
|
||||||
|
data/backgrounds/Curly_Leaves.edj \
|
||||||
|
data/backgrounds/Flower_Petals.edj \
|
||||||
|
data/backgrounds/Go_Away.edj \
|
||||||
|
data/backgrounds/Green_Stem.edj \
|
||||||
|
data/backgrounds/Leafy_Red.edj \
|
||||||
|
data/backgrounds/Ramen.edj \
|
||||||
|
data/backgrounds/Shady_Leaves.edj \
|
||||||
|
data/backgrounds/Windy_Palm.edj \
|
||||||
|
data/backgrounds/Lantern_Cluster.edj \
|
||||||
|
data/backgrounds/Wall_Lanterns.edj
|
||||||
|
|
||||||
|
|
||||||
|
EXTRA_DIST += $(backgroundfiles_DATA)
|
|
@ -1,6 +0,0 @@
|
||||||
MAINTAINERCLEANFILES = Makefile.in
|
|
||||||
filesdir = $(datadir)/applications
|
|
||||||
files_DATA = \
|
|
||||||
enlightenment_filemanager.desktop
|
|
||||||
|
|
||||||
EXTRA_DIST = $(files_DATA)
|
|
|
@ -0,0 +1,5 @@
|
||||||
|
desktopfilesdir = $(datadir)/applications
|
||||||
|
desktopfiles_DATA = \
|
||||||
|
data/desktop/enlightenment_filemanager.desktop
|
||||||
|
|
||||||
|
EXTRA_DIST += $(desktopfiles_DATA)
|
|
@ -1,16 +0,0 @@
|
||||||
MAINTAINERCLEANFILES = Makefile.in
|
|
||||||
filesdir = $(sysconfdir)/enlightenment
|
|
||||||
files_DATA =
|
|
||||||
|
|
||||||
if INSTALL_SYSACTIONS
|
|
||||||
files_DATA += sysactions.conf
|
|
||||||
endif
|
|
||||||
|
|
||||||
menusdir = $(sysconfdir)/xdg/menus
|
|
||||||
menus_DATA =
|
|
||||||
|
|
||||||
if INSTALL_ENLIGHTENMENT_MENU
|
|
||||||
menus_DATA += enlightenment.menu
|
|
||||||
endif
|
|
||||||
|
|
||||||
EXTRA_DIST = $(files_DATA) $(menus_DATA)
|
|
|
@ -0,0 +1,15 @@
|
||||||
|
etcfilesdir = $(sysconfdir)/enlightenment
|
||||||
|
etcfiles_DATA =
|
||||||
|
|
||||||
|
if INSTALL_SYSACTIONS
|
||||||
|
etcfiles_DATA += data/etc/sysactions.conf
|
||||||
|
endif
|
||||||
|
|
||||||
|
etcmenusdir = $(sysconfdir)/xdg/menus
|
||||||
|
etcmenus_DATA =
|
||||||
|
|
||||||
|
if INSTALL_ENLIGHTENMENT_MENU
|
||||||
|
etcmenus_DATA += data/etc/enlightenment.menu
|
||||||
|
endif
|
||||||
|
|
||||||
|
EXTRA_DIST += $(etcfiles_DATA) $(etcmenus_DATA)
|
|
@ -1,11 +0,0 @@
|
||||||
MAINTAINERCLEANFILES = Makefile.in
|
|
||||||
|
|
||||||
favsdir = $(datadir)/enlightenment/data/favorites
|
|
||||||
favs_DATA = \
|
|
||||||
.order \
|
|
||||||
desktop.desktop \
|
|
||||||
home.desktop \
|
|
||||||
root.desktop \
|
|
||||||
tmp.desktop
|
|
||||||
|
|
||||||
EXTRA_DIST = $(favs_DATA)
|
|
|
@ -0,0 +1,9 @@
|
||||||
|
datafavsdir = $(datadir)/enlightenment/data/favorites
|
||||||
|
datafavs_DATA = \
|
||||||
|
data/favorites/.order \
|
||||||
|
data/favorites/desktop.desktop \
|
||||||
|
data/favorites/home.desktop \
|
||||||
|
data/favorites/root.desktop \
|
||||||
|
data/favorites/tmp.desktop
|
||||||
|
|
||||||
|
EXTRA_DIST += $(datafavs_DATA)
|
|
@ -1,104 +0,0 @@
|
||||||
MAINTAINERCLEANFILES = Makefile.in
|
|
||||||
filesdir = $(datadir)/enlightenment/data/flags
|
|
||||||
files_DATA = \
|
|
||||||
ad_flag.png \
|
|
||||||
af_flag.png \
|
|
||||||
al_flag.png \
|
|
||||||
am_flag.png \
|
|
||||||
ara_flag.png \
|
|
||||||
ar_flag.png \
|
|
||||||
at_flag.png \
|
|
||||||
az_flag.png \
|
|
||||||
ba_flag.png \
|
|
||||||
bd_flag.png \
|
|
||||||
be_flag.png \
|
|
||||||
bg_flag.png \
|
|
||||||
brai_flag.png \
|
|
||||||
br_flag.png \
|
|
||||||
bt_flag.png \
|
|
||||||
bw_flag.png \
|
|
||||||
by_flag.png \
|
|
||||||
ca_flag.png \
|
|
||||||
cat_flag.png \
|
|
||||||
cd_flag.png \
|
|
||||||
ch_flag.png \
|
|
||||||
cm_flag.png \
|
|
||||||
cn_flag.png \
|
|
||||||
cz_flag.png \
|
|
||||||
de_flag.png \
|
|
||||||
dk_flag.png \
|
|
||||||
ee_flag.png \
|
|
||||||
epo_flag.png \
|
|
||||||
es_flag.png \
|
|
||||||
et_flag.png \
|
|
||||||
fi_flag.png \
|
|
||||||
fo_flag.png \
|
|
||||||
fr_flag.png \
|
|
||||||
gb_flag.png \
|
|
||||||
ge_flag.png \
|
|
||||||
gh_flag.png \
|
|
||||||
gn_flag.png \
|
|
||||||
gr_flag.png \
|
|
||||||
hr_flag.png \
|
|
||||||
hu_flag.png \
|
|
||||||
ie_flag.png \
|
|
||||||
il_flag.png \
|
|
||||||
in_flag.png \
|
|
||||||
iq_flag.png \
|
|
||||||
ir_flag.png \
|
|
||||||
is_flag.png \
|
|
||||||
it_flag.png \
|
|
||||||
jp_flag.png \
|
|
||||||
ke_flag.png \
|
|
||||||
kg_flag.png \
|
|
||||||
kh_flag.png \
|
|
||||||
kr_flag.png \
|
|
||||||
ku_flag.png \
|
|
||||||
kz_flag.png \
|
|
||||||
la_flag.png \
|
|
||||||
lang-system.png \
|
|
||||||
latam_flag.png \
|
|
||||||
lk_flag.png \
|
|
||||||
lt_flag.png \
|
|
||||||
lv_flag.png \
|
|
||||||
ma_flag.png \
|
|
||||||
mao_flag.png \
|
|
||||||
md_flag.png \
|
|
||||||
me_flag.png \
|
|
||||||
mk_flag.png \
|
|
||||||
ml_flag.png \
|
|
||||||
mm_flag.png \
|
|
||||||
mn_flag.png \
|
|
||||||
mt_flag.png \
|
|
||||||
mv_flag.png \
|
|
||||||
my_flag.png \
|
|
||||||
ng_flag.png \
|
|
||||||
nl_flag.png \
|
|
||||||
no_flag.png \
|
|
||||||
np_flag.png \
|
|
||||||
ph_flag.png \
|
|
||||||
pk_flag.png \
|
|
||||||
pl_flag.png \
|
|
||||||
pt_flag.png \
|
|
||||||
ro_flag.png \
|
|
||||||
rs_flag.png \
|
|
||||||
ru_flag.png \
|
|
||||||
se_flag.png \
|
|
||||||
si_flag.png \
|
|
||||||
sk_flag.png \
|
|
||||||
sn_flag.png \
|
|
||||||
sy_flag.png \
|
|
||||||
th_flag.png \
|
|
||||||
tj_flag.png \
|
|
||||||
tm_flag.png \
|
|
||||||
tr_flag.png \
|
|
||||||
tw_flag.png \
|
|
||||||
tz_flag.png \
|
|
||||||
ua_flag.png \
|
|
||||||
unknown_flag.png \
|
|
||||||
us_flag.png \
|
|
||||||
uz_flag.png \
|
|
||||||
vn_flag.png \
|
|
||||||
za_flag.png
|
|
||||||
|
|
||||||
EXTRA_DIST = $(files_DATA)
|
|
|
@ -0,0 +1,103 @@
|
||||||
|
dataflagsfilesdir = $(datadir)/enlightenment/data/flags
|
||||||
|
dataflagsfiles_DATA = \
|
||||||
|
data/flags/ad_flag.png \
|
||||||
|
data/flags/af_flag.png \
|
||||||
|
data/flags/al_flag.png \
|
||||||
|
data/flags/am_flag.png \
|
||||||
|
data/flags/ara_flag.png \
|
||||||
|
data/flags/ar_flag.png \
|
||||||
|
data/flags/at_flag.png \
|
||||||
|
data/flags/az_flag.png \
|
||||||
|
data/flags/ba_flag.png \
|
||||||
|
data/flags/bd_flag.png \
|
||||||
|
data/flags/be_flag.png \
|
||||||
|
data/flags/bg_flag.png \
|
||||||
|
data/flags/brai_flag.png \
|
||||||
|
data/flags/br_flag.png \
|
||||||
|
data/flags/bt_flag.png \
|
||||||
|
data/flags/bw_flag.png \
|
||||||
|
data/flags/by_flag.png \
|
||||||
|
data/flags/ca_flag.png \
|
||||||
|
data/flags/cat_flag.png \
|
||||||
|
data/flags/cd_flag.png \
|
||||||
|
data/flags/ch_flag.png \
|
||||||
|
data/flags/cm_flag.png \
|
||||||
|
data/flags/cn_flag.png \
|
||||||
|
data/flags/cz_flag.png \
|
||||||
|
data/flags/de_flag.png \
|
||||||
|
data/flags/dk_flag.png \
|
||||||
|
data/flags/ee_flag.png \
|
||||||
|
data/flags/epo_flag.png \
|
||||||
|
data/flags/es_flag.png \
|
||||||
|
data/flags/et_flag.png \
|
||||||
|
data/flags/fi_flag.png \
|
||||||
|
data/flags/fo_flag.png \
|
||||||
|
data/flags/fr_flag.png \
|
||||||
|
data/flags/gb_flag.png \
|
||||||
|
data/flags/ge_flag.png \
|
||||||
|
data/flags/gh_flag.png \
|
||||||
|
data/flags/gn_flag.png \
|
||||||
|
data/flags/gr_flag.png \
|
||||||
|
data/flags/hr_flag.png \
|
||||||
|
data/flags/hu_flag.png \
|
||||||
|
data/flags/ie_flag.png \
|
||||||
|
data/flags/il_flag.png \
|
||||||
|
data/flags/in_flag.png \
|
||||||
|
data/flags/iq_flag.png \
|
||||||
|
data/flags/ir_flag.png \
|
||||||
|
data/flags/is_flag.png \
|
||||||
|
data/flags/it_flag.png \
|
||||||
|
data/flags/jp_flag.png \
|
||||||
|
data/flags/ke_flag.png \
|
||||||
|
data/flags/kg_flag.png \
|
||||||
|
data/flags/kh_flag.png \
|
||||||
|
data/flags/kr_flag.png \
|
||||||
|
data/flags/ku_flag.png \
|
||||||
|
data/flags/kz_flag.png \
|
||||||
|
data/flags/la_flag.png \
|
||||||
|
data/flags/lang-system.png \
|
||||||
|
data/flags/latam_flag.png \
|
||||||
|
data/flags/lk_flag.png \
|
||||||
|
data/flags/lt_flag.png \
|
||||||
|
data/flags/lv_flag.png \
|
||||||
|
data/flags/ma_flag.png \
|
||||||
|
data/flags/mao_flag.png \
|
||||||
|
data/flags/md_flag.png \
|
||||||
|
data/flags/me_flag.png \
|
||||||
|
data/flags/mk_flag.png \
|
||||||
|
data/flags/ml_flag.png \
|
||||||
|
data/flags/mm_flag.png \
|
||||||
|
data/flags/mn_flag.png \
|
||||||
|
data/flags/mt_flag.png \
|
||||||
|
data/flags/mv_flag.png \
|
||||||
|
data/flags/my_flag.png \
|
||||||
|
data/flags/ng_flag.png \
|
||||||
|
data/flags/nl_flag.png \
|
||||||
|
data/flags/no_flag.png \
|
||||||
|
data/flags/np_flag.png \
|
||||||
|
data/flags/ph_flag.png \
|
||||||
|
data/flags/pk_flag.png \
|
||||||
|
data/flags/pl_flag.png \
|
||||||
|
data/flags/pt_flag.png \
|
||||||
|
data/flags/ro_flag.png \
|
||||||
|
data/flags/rs_flag.png \
|
||||||
|
data/flags/ru_flag.png \
|
||||||
|
data/flags/se_flag.png \
|
||||||
|
data/flags/si_flag.png \
|
||||||
|
data/flags/sk_flag.png \
|
||||||
|
data/flags/sn_flag.png \
|
||||||
|
data/flags/sy_flag.png \
|
||||||
|
data/flags/th_flag.png \
|
||||||
|
data/flags/tj_flag.png \
|
||||||
|
data/flags/tm_flag.png \
|
||||||
|
data/flags/tr_flag.png \
|
||||||
|
data/flags/tw_flag.png \
|
||||||
|
data/flags/tz_flag.png \
|
||||||
|
data/flags/ua_flag.png \
|
||||||
|
data/flags/unknown_flag.png \
|
||||||
|
data/flags/us_flag.png \
|
||||||
|
data/flags/uz_flag.png \
|
||||||
|
data/flags/vn_flag.png \
|
||||||
|
data/flags/za_flag.png
|
||||||
|
|
||||||
|
EXTRA_DIST += $(dataflagsfiles_DATA)
|
|
@ -1,13 +0,0 @@
|
||||||
MAINTAINERCLEANFILES = Makefile.in
|
|
||||||
filesdir = $(datadir)/enlightenment/data/icons
|
|
||||||
files_DATA = \
|
|
||||||
xterm.png \
|
|
||||||
web_browser.png \
|
|
||||||
audio_player.png \
|
|
||||||
mail_client.png \
|
|
||||||
video_player.png \
|
|
||||||
text_editor.png \
|
|
||||||
image_viewer.png \
|
|
||||||
audio_player2.png
|
|
||||||
|
|
||||||
EXTRA_DIST = $(files_DATA)
|
|
|
@ -0,0 +1,12 @@
|
||||||
|
iconsfilesdir = $(datadir)/enlightenment/data/icons
|
||||||
|
iconsfiles_DATA = \
|
||||||
|
data/icons/xterm.png \
|
||||||
|
data/icons/web_browser.png \
|
||||||
|
data/icons/audio_player.png \
|
||||||
|
data/icons/mail_client.png \
|
||||||
|
data/icons/video_player.png \
|
||||||
|
data/icons/text_editor.png \
|
||||||
|
data/icons/image_viewer.png \
|
||||||
|
data/icons/audio_player2.png
|
||||||
|
|
||||||
|
EXTRA_DIST += $(iconsfiles_DATA)
|
|
@ -1,10 +0,0 @@
|
||||||
MAINTAINERCLEANFILES = Makefile.in
|
|
||||||
filesdir = $(datadir)/enlightenment/data/images
|
|
||||||
files_DATA = \
|
|
||||||
enlightenment.png \
|
|
||||||
test.png \
|
|
||||||
test.jpg \
|
|
||||||
test.edj \
|
|
||||||
test.svg
|
|
||||||
|
|
||||||
EXTRA_DIST = $(files_DATA)
|
|
|
@ -0,0 +1,9 @@
|
||||||
|
imagesfilesdir = $(datadir)/enlightenment/data/images
|
||||||
|
imagesfiles_DATA = \
|
||||||
|
data/images/enlightenment.png \
|
||||||
|
data/images/test.png \
|
||||||
|
data/images/test.jpg \
|
||||||
|
data/images/test.edj \
|
||||||
|
data/images/test.svg
|
||||||
|
|
||||||
|
EXTRA_DIST += $(imagesfiles_DATA)
|
|
@ -1,12 +0,0 @@
|
||||||
MAINTAINERCLEANFILES = Makefile.in
|
|
||||||
filesdir = $(datadir)/enlightenment/data/input_methods
|
|
||||||
files_DATA = \
|
|
||||||
scim.imc \
|
|
||||||
uim.imc \
|
|
||||||
iiimf.imc \
|
|
||||||
ibus.imc \
|
|
||||||
gcin.imc \
|
|
||||||
hime.imc \
|
|
||||||
fcitx.imc
|
|
||||||
|
|
||||||
EXTRA_DIST = $(files_DATA)
|
|
|
@ -0,0 +1,11 @@
|
||||||
|
imcfilesdir = $(datadir)/enlightenment/data/input_methods
|
||||||
|
imcfiles_DATA = \
|
||||||
|
data/input_methods/scim.imc \
|
||||||
|
data/input_methods/uim.imc \
|
||||||
|
data/input_methods/iiimf.imc \
|
||||||
|
data/input_methods/ibus.imc \
|
||||||
|
data/input_methods/gcin.imc \
|
||||||
|
data/input_methods/hime.imc \
|
||||||
|
data/input_methods/fcitx.imc
|
||||||
|
|
||||||
|
EXTRA_DIST += $(imcfiles_DATA)
|
|
@ -1,8 +0,0 @@
|
||||||
MAINTAINERCLEANFILES = Makefile.in
|
|
||||||
|
|
||||||
enlightenment_remotedir = $(bindir)
|
|
||||||
|
|
||||||
enlightenment_remote_SCRIPTS = enlightenment_remote
|
|
||||||
|
|
||||||
EXTRA_DIST = enlightenment_remote
|
|
||||||
|
|
|
@ -0,0 +1,6 @@
|
||||||
|
enlightenment_remotedir = $(bindir)
|
||||||
|
|
||||||
|
enlightenment_remote_SCRIPTS = data/tools/enlightenment_remote
|
||||||
|
|
||||||
|
EXTRA_DIST += data/tools/enlightenment_remote
|
||||||
|
|
|
@ -1,9 +0,0 @@
|
||||||
AUTOMAKE_OPTIONS = 1.4 foreign
|
|
||||||
MAINTAINERCLEANFILES = Makefile.in
|
|
||||||
|
|
||||||
if HAVE_SYSTEMD_USER_SESSION
|
|
||||||
unitsdir = $(USER_SESSION_DIR)
|
|
||||||
units_DATA = e18.service
|
|
||||||
endif
|
|
||||||
|
|
||||||
EXTRA_DIST = $(units_DATA)
|
|
|
@ -0,0 +1,6 @@
|
||||||
|
if HAVE_SYSTEMD_USER_SESSION
|
||||||
|
unitsdir = $(USER_SESSION_DIR)
|
||||||
|
units_DATA = data/units/e18.service
|
||||||
|
endif
|
||||||
|
|
||||||
|
EXTRA_DIST += $(units_DATA)
|
|
@ -1,4 +0,0 @@
|
||||||
MAINTAINERCLEANFILES = Makefile.in
|
|
||||||
filesdir = $(datadir)/xsessions
|
|
||||||
files_DATA = enlightenment.desktop
|
|
||||||
EXTRA_DIST = enlightenment.desktop.in
|
|
|
@ -0,0 +1,3 @@
|
||||||
|
xsessionfilesdir = $(datadir)/xsessions
|
||||||
|
xsessionfiles_DATA = data/xsession/enlightenment.desktop
|
||||||
|
EXTRA_DIST += data/xsession/enlightenment.desktop.in
|
|
@ -1,15 +1,15 @@
|
||||||
PROJECT_NAME = Enlightenment
|
PROJECT_NAME = Enlightenment
|
||||||
PROJECT_NUMBER =
|
PROJECT_NUMBER =
|
||||||
OUTPUT_DIRECTORY = .
|
OUTPUT_DIRECTORY = @builddir@/doc
|
||||||
INPUT = @builddir@/e.dox @top_srcdir@/src
|
INPUT = @builddir@/doc/e.dox @top_srcdir@/src
|
||||||
IMAGE_PATH = @srcdir@/img
|
IMAGE_PATH = @srcdir@/doc/img
|
||||||
OUTPUT_LANGUAGE = English
|
OUTPUT_LANGUAGE = English
|
||||||
GENERATE_HTML = YES
|
GENERATE_HTML = YES
|
||||||
HTML_OUTPUT = html
|
HTML_OUTPUT = html
|
||||||
HTML_FILE_EXTENSION = .html
|
HTML_FILE_EXTENSION = .html
|
||||||
HTML_HEADER = @srcdir@/head.html
|
HTML_HEADER = @srcdir@/doc/head.html
|
||||||
HTML_FOOTER = @srcdir@/foot.html
|
HTML_FOOTER = @srcdir@/doc/foot.html
|
||||||
HTML_STYLESHEET = @srcdir@/e.css
|
HTML_STYLESHEET = @srcdir@/doc/e.css
|
||||||
ENUM_VALUES_PER_LINE = 1
|
ENUM_VALUES_PER_LINE = 1
|
||||||
GENERATE_HTMLHELP = NO
|
GENERATE_HTMLHELP = NO
|
||||||
CHM_FILE =
|
CHM_FILE =
|
||||||
|
|
|
@ -1,42 +0,0 @@
|
||||||
MAINTAINERCLEANFILES = Makefile.in e.dox
|
|
||||||
|
|
||||||
.PHONY: doc
|
|
||||||
|
|
||||||
PACKAGE_DOCNAME = $(PACKAGE_TARNAME)-$(PACKAGE_VERSION)-doc
|
|
||||||
|
|
||||||
if EFL_BUILD_DOC
|
|
||||||
|
|
||||||
doc-clean:
|
|
||||||
rm -rf html/ latex/ man/ xml/ $(top_builddir)/$(PACKAGE_DOCNAME).tar*
|
|
||||||
|
|
||||||
doc: all doc-clean
|
|
||||||
$(efl_doxygen)
|
|
||||||
cp $(srcdir)/img/* html/
|
|
||||||
rm -rf $(PACKAGE_DOCNAME).tar*
|
|
||||||
$(MKDIR_P) $(PACKAGE_DOCNAME)/doc
|
|
||||||
cp -R html/ latex/ man/ $(PACKAGE_DOCNAME)/doc
|
|
||||||
tar cf $(PACKAGE_DOCNAME).tar $(PACKAGE_DOCNAME)/
|
|
||||||
bzip2 -9 $(PACKAGE_DOCNAME).tar
|
|
||||||
rm -rf $(PACKAGE_DOCNAME)/
|
|
||||||
mv $(PACKAGE_DOCNAME).tar.bz2 $(top_builddir)
|
|
||||||
@echo "Documentation Package: $(top_builddir)/$(PACKAGE_DOCNAME).tar.bz2"
|
|
||||||
|
|
||||||
clean-local: doc-clean
|
|
||||||
|
|
||||||
else
|
|
||||||
|
|
||||||
doc:
|
|
||||||
@echo "Documentation not built. Run ./configure --help"
|
|
||||||
|
|
||||||
endif
|
|
||||||
|
|
||||||
filesdir = $(datadir)/enlightenment/doc
|
|
||||||
files_DATA = \
|
|
||||||
documentation.html \
|
|
||||||
illume2.html \
|
|
||||||
FDO.txt \
|
|
||||||
cache.txt \
|
|
||||||
enlightenment.png \
|
|
||||||
illume2.png
|
|
||||||
|
|
||||||
EXTRA_DIST = $(files_DATA) Doxyfile.in $(wildcard img/*.*) e.css head.html foot.html e.dox.in
|
|
|
@ -0,0 +1,47 @@
|
||||||
|
MAINTAINERCLEANFILES += doc/e.dox
|
||||||
|
|
||||||
|
PHONIES += doc doc-clean
|
||||||
|
|
||||||
|
PACKAGE_DOCNAME = $(PACKAGE_TARNAME)-$(PACKAGE_VERSION)-doc
|
||||||
|
|
||||||
|
if EFL_BUILD_DOC
|
||||||
|
|
||||||
|
doc-clean:
|
||||||
|
rm -rf doc/html/ doc/latex/ doc/man/ doc/xml/ $(top_builddir)/$(PACKAGE_DOCNAME).tar*
|
||||||
|
|
||||||
|
doc: all doc-clean
|
||||||
|
@echo "entering doc/"
|
||||||
|
$(efl_doxygen) doc/Doxyfile
|
||||||
|
cp $(top_srcdir)/doc/img/* doc/html/
|
||||||
|
rm -rf $(PACKAGE_DOCNAME).tar*
|
||||||
|
$(MKDIR_P) $(PACKAGE_DOCNAME)/doc
|
||||||
|
cp -R doc/html/ doc/latex/ doc/man/ $(PACKAGE_DOCNAME)/doc
|
||||||
|
tar cf $(PACKAGE_DOCNAME).tar $(PACKAGE_DOCNAME)/
|
||||||
|
bzip2 -9 $(PACKAGE_DOCNAME).tar
|
||||||
|
rm -rf $(PACKAGE_DOCNAME)/
|
||||||
|
@echo "Documentation Package: $(top_builddir)/$(PACKAGE_DOCNAME).tar.bz2"
|
||||||
|
|
||||||
|
else
|
||||||
|
|
||||||
|
doc:
|
||||||
|
@echo "Documentation not built. Run ./configure --help"
|
||||||
|
|
||||||
|
endif
|
||||||
|
|
||||||
|
docfilesdir = $(datadir)/enlightenment/doc
|
||||||
|
docfiles_DATA = \
|
||||||
|
doc/documentation.html \
|
||||||
|
doc/illume2.html \
|
||||||
|
doc/FDO.txt \
|
||||||
|
doc/cache.txt \
|
||||||
|
doc/enlightenment.png \
|
||||||
|
doc/illume2.png
|
||||||
|
|
||||||
|
EXTRA_DIST += \
|
||||||
|
$(docfiles_DATA) \
|
||||||
|
doc/Doxyfile.in \
|
||||||
|
$(wildcard doc/img/*.*) \
|
||||||
|
doc/e.css \
|
||||||
|
doc/head.html \
|
||||||
|
doc/foot.html \
|
||||||
|
doc/e.dox.in
|
|
@ -0,0 +1,3 @@
|
||||||
|
export E_THEME_OVERRIDE=$(readlink -f data/themes/default.edj)
|
||||||
|
export E_MODULE_SRC_PATH=$(readlink -f src/modules/)
|
||||||
|
export E_START=/e
|
|
@ -0,0 +1,26 @@
|
||||||
|
MAINTAINERCLEANFILES += \
|
||||||
|
m4/libtool.m4 \
|
||||||
|
m4/lt~obsolete.m4 \
|
||||||
|
m4/ltoptions.m4 \
|
||||||
|
m4/ltsugar.m4 \
|
||||||
|
m4/ltversion.m4 \
|
||||||
|
m4/codeset.m4 \
|
||||||
|
m4/gettext.m4 \
|
||||||
|
m4/glibc21.m4 \
|
||||||
|
m4/iconv.m4 \
|
||||||
|
m4/intdiv0.m4 \
|
||||||
|
m4/inttypes_h.m4 \
|
||||||
|
m4/inttypes.m4 \
|
||||||
|
m4/inttypes-pri.m4 \
|
||||||
|
m4/isc-posix.m4 \
|
||||||
|
m4/lcmessage.m4 \
|
||||||
|
m4/lib-ld.m4 \
|
||||||
|
m4/lib-link.m4 \
|
||||||
|
m4/lib-prefix.m4 \
|
||||||
|
m4/nls.m4 \
|
||||||
|
m4/po.m4 \
|
||||||
|
m4/progtest.m4 \
|
||||||
|
m4/stdint_h.m4 \
|
||||||
|
m4/uintmax_t.m4 \
|
||||||
|
m4/ulonglong.m4
|
||||||
|
|
|
@ -0,0 +1,10 @@
|
||||||
|
MAINTAINERCLEANFILES += \
|
||||||
|
po/boldquot.sed \
|
||||||
|
po/en@boldquot.header \
|
||||||
|
po/en@quot.header \
|
||||||
|
po/insert-header.sin \
|
||||||
|
po/Makefile.in.in \
|
||||||
|
po/Makevars.template \
|
||||||
|
po/quot.sed \
|
||||||
|
po/remove-potcdate.sin \
|
||||||
|
po/Rules-quot
|
|
@ -4,9 +4,9 @@ src/bin/e_alert.c
|
||||||
src/bin/e_atoms.c
|
src/bin/e_atoms.c
|
||||||
src/bin/e_bg.c
|
src/bin/e_bg.c
|
||||||
src/bin/e_bindings.c
|
src/bin/e_bindings.c
|
||||||
src/bin/e_border.c
|
|
||||||
src/bin/e_box.c
|
src/bin/e_box.c
|
||||||
src/bin/e_canvas.c
|
src/bin/e_canvas.c
|
||||||
|
src/bin/e_client.c
|
||||||
src/bin/e_color.c
|
src/bin/e_color.c
|
||||||
src/bin/e_color_class.c
|
src/bin/e_color_class.c
|
||||||
src/bin/e_color_dialog.c
|
src/bin/e_color_dialog.c
|
||||||
|
@ -15,7 +15,6 @@ src/bin/e_config.c
|
||||||
src/bin/e_config_dialog.c
|
src/bin/e_config_dialog.c
|
||||||
src/bin/e_configure.c
|
src/bin/e_configure.c
|
||||||
src/bin/e_confirm_dialog.c
|
src/bin/e_confirm_dialog.c
|
||||||
src/bin/e_container.c
|
|
||||||
src/bin/e_datastore.c
|
src/bin/e_datastore.c
|
||||||
src/bin/e_desk.c
|
src/bin/e_desk.c
|
||||||
src/bin/e_desklock.c
|
src/bin/e_desklock.c
|
||||||
|
@ -47,13 +46,15 @@ src/bin/e_imc_main.c
|
||||||
src/bin/e_import_config_dialog.c
|
src/bin/e_import_config_dialog.c
|
||||||
src/bin/e_import_dialog.c
|
src/bin/e_import_dialog.c
|
||||||
src/bin/e_init.c
|
src/bin/e_init.c
|
||||||
src/bin/e_int_border_locks.c
|
src/bin/e_int_client_locks.c
|
||||||
src/bin/e_int_border_menu.c
|
src/bin/e_int_client_menu.c
|
||||||
src/bin/e_int_border_prop.c
|
src/bin/e_int_client_prop.c
|
||||||
src/bin/e_int_border_remember.c
|
src/bin/e_int_client_remember.c
|
||||||
src/bin/e_int_config_modules.c
|
src/bin/e_int_config_modules.c
|
||||||
src/bin/e_int_gadcon_config.c
|
src/bin/e_int_gadcon_config.c
|
||||||
src/bin/e_int_menus.c
|
src/bin/e_int_menus.c
|
||||||
|
src/bin/e_int_config_comp.c
|
||||||
|
src/bin/e_int_config_comp_match.c
|
||||||
src/bin/e_int_shelf_config.c
|
src/bin/e_int_shelf_config.c
|
||||||
src/bin/e_int_toolbar_config.c
|
src/bin/e_int_toolbar_config.c
|
||||||
src/bin/e_intl.c
|
src/bin/e_intl.c
|
||||||
|
@ -76,7 +77,6 @@ src/bin/e_pan.c
|
||||||
src/bin/e_path.c
|
src/bin/e_path.c
|
||||||
src/bin/e_place.c
|
src/bin/e_place.c
|
||||||
src/bin/e_pointer.c
|
src/bin/e_pointer.c
|
||||||
src/bin/e_popup.c
|
|
||||||
src/bin/e_prefix.c
|
src/bin/e_prefix.c
|
||||||
src/bin/e_randr.c
|
src/bin/e_randr.c
|
||||||
src/bin/e_remember.c
|
src/bin/e_remember.c
|
||||||
|
@ -90,7 +90,6 @@ src/bin/e_slider.c
|
||||||
src/bin/e_spectrum.c
|
src/bin/e_spectrum.c
|
||||||
src/bin/e_start_main.c
|
src/bin/e_start_main.c
|
||||||
src/bin/e_startup.c
|
src/bin/e_startup.c
|
||||||
src/bin/e_stolen.c
|
|
||||||
src/bin/e_sys.c
|
src/bin/e_sys.c
|
||||||
src/bin/e_sys_main.c
|
src/bin/e_sys_main.c
|
||||||
src/bin/e_table.c
|
src/bin/e_table.c
|
||||||
|
@ -157,9 +156,6 @@ src/modules/conf_bindings/e_int_config_keybindings.c
|
||||||
src/modules/conf_bindings/e_int_config_mousebindings.c
|
src/modules/conf_bindings/e_int_config_mousebindings.c
|
||||||
src/modules/conf_bindings/e_int_config_signalbindings.c
|
src/modules/conf_bindings/e_int_config_signalbindings.c
|
||||||
src/modules/conf_bindings/e_mod_main.c
|
src/modules/conf_bindings/e_mod_main.c
|
||||||
src/modules/conf_comp/e_mod_config.c
|
|
||||||
src/modules/conf_comp/e_mod_config_match.c
|
|
||||||
src/modules/conf_comp/e_mod_main.c
|
|
||||||
src/modules/conf_dialogs/e_int_config_dialogs.c
|
src/modules/conf_dialogs/e_int_config_dialogs.c
|
||||||
src/modules/conf_dialogs/e_int_config_profiles.c
|
src/modules/conf_dialogs/e_int_config_profiles.c
|
||||||
src/modules/conf_dialogs/e_mod_main.c
|
src/modules/conf_dialogs/e_mod_main.c
|
||||||
|
|
|
@ -1,2 +0,0 @@
|
||||||
MAINTAINERCLEANFILES = Makefile.in
|
|
||||||
SUBDIRS = bin modules
|
|
|
@ -0,0 +1,2 @@
|
||||||
|
include src/bin/Makefile.mk
|
||||||
|
include src/modules/Makefile.mk
|
|
@ -1,457 +0,0 @@
|
||||||
SUBDIRS = e_fm
|
|
||||||
|
|
||||||
MAINTAINERCLEANFILES = Makefile.in
|
|
||||||
DISTCLEANFILES = e_fm_shared_types.h
|
|
||||||
|
|
||||||
AM_CPPFLAGS = \
|
|
||||||
-I$(top_builddir) \
|
|
||||||
-I$(top_builddir)/src/bin \
|
|
||||||
-I$(top_srcdir) \
|
|
||||||
-I$(top_srcdir)/src/bin \
|
|
||||||
@e_cflags@ \
|
|
||||||
@cf_cflags@ \
|
|
||||||
@VALGRIND_CFLAGS@ \
|
|
||||||
@EDJE_DEF@ \
|
|
||||||
@WAYLAND_CFLAGS@ \
|
|
||||||
@WAYLAND_EGL_CFLAGS@ \
|
|
||||||
-DE_BINDIR=\"$(bindir)\" \
|
|
||||||
-DPACKAGE_BIN_DIR=\"@PACKAGE_BIN_DIR@\" \
|
|
||||||
-DPACKAGE_LIB_DIR=\"@PACKAGE_LIB_DIR@\" \
|
|
||||||
-DPACKAGE_DATA_DIR=\"@PACKAGE_DATA_DIR@\" \
|
|
||||||
-DLOCALE_DIR=\"@LOCALE_DIR@\" \
|
|
||||||
-DPACKAGE_SYSCONF_DIR=\"@PACKAGE_SYSCONF_DIR@\"
|
|
||||||
|
|
||||||
bin_PROGRAMS = \
|
|
||||||
enlightenment \
|
|
||||||
enlightenment_imc \
|
|
||||||
enlightenment_start \
|
|
||||||
enlightenment_filemanager \
|
|
||||||
enlightenment_open
|
|
||||||
|
|
||||||
internal_bindir = $(libdir)/enlightenment/utils
|
|
||||||
internal_bin_PROGRAMS = \
|
|
||||||
enlightenment_fm_op \
|
|
||||||
enlightenment_sys \
|
|
||||||
enlightenment_thumb \
|
|
||||||
enlightenment_alert \
|
|
||||||
enlightenment_static_grabber
|
|
||||||
|
|
||||||
if HAVE_EEZE
|
|
||||||
internal_bin_PROGRAMS += enlightenment_backlight
|
|
||||||
endif
|
|
||||||
|
|
||||||
ENLIGHTENMENTHEADERS = \
|
|
||||||
e_about.h \
|
|
||||||
e_acpi.h \
|
|
||||||
e_actions.h \
|
|
||||||
e_alert.h \
|
|
||||||
e_atoms.h \
|
|
||||||
e_backlight.h \
|
|
||||||
e_bg.h \
|
|
||||||
e_bindings.h \
|
|
||||||
e_border.h \
|
|
||||||
e_box.h \
|
|
||||||
e_canvas.h \
|
|
||||||
e_color_class.h \
|
|
||||||
e_color_dialog.h \
|
|
||||||
e_color.h \
|
|
||||||
e_comp.h \
|
|
||||||
e_comp_cfdata.h \
|
|
||||||
e_comp_render_update.h \
|
|
||||||
e_config_data.h \
|
|
||||||
e_config_dialog.h \
|
|
||||||
e_config.h \
|
|
||||||
e_configure.h \
|
|
||||||
e_confirm_dialog.h \
|
|
||||||
e_container.h \
|
|
||||||
e_datastore.h \
|
|
||||||
e_dbusmenu.h \
|
|
||||||
e_desk.h \
|
|
||||||
e_deskenv.h \
|
|
||||||
e_desklock.h \
|
|
||||||
e_deskmirror.h \
|
|
||||||
e_dialog.h \
|
|
||||||
e_dnd.h \
|
|
||||||
e_dpms.h \
|
|
||||||
e_desktop_editor.h \
|
|
||||||
e_entry.h \
|
|
||||||
e_entry_dialog.h \
|
|
||||||
e_env.h \
|
|
||||||
e_error.h \
|
|
||||||
e_exec.h \
|
|
||||||
e_exehist.h \
|
|
||||||
e_filereg.h \
|
|
||||||
e_flowlayout.h \
|
|
||||||
e_fm_custom.h \
|
|
||||||
e_fm_device.h \
|
|
||||||
e_fm.h \
|
|
||||||
e_fm_mime.h \
|
|
||||||
e_fm_op.h \
|
|
||||||
e_fm_op_registry.h \
|
|
||||||
e_fm_prop.h \
|
|
||||||
e_fm_shared_codec.h \
|
|
||||||
e_fm_shared_device.h \
|
|
||||||
e_fm_shared_types.h \
|
|
||||||
e_focus.h \
|
|
||||||
e_font.h \
|
|
||||||
e_gadcon.h \
|
|
||||||
e_gadcon_popup.h \
|
|
||||||
e_grabinput.h \
|
|
||||||
e_grab_dialog.h \
|
|
||||||
e.h \
|
|
||||||
e_hints.h \
|
|
||||||
e_icon.h \
|
|
||||||
e_ilist.h \
|
|
||||||
e_import_config_dialog.h \
|
|
||||||
e_import_dialog.h \
|
|
||||||
e_includes.h \
|
|
||||||
e_init.h \
|
|
||||||
e_int_border_locks.h \
|
|
||||||
e_int_border_menu.h \
|
|
||||||
e_int_border_prop.h \
|
|
||||||
e_int_border_remember.h \
|
|
||||||
e_int_config_modules.h \
|
|
||||||
e_int_gadcon_config.h \
|
|
||||||
e_intl_data.h \
|
|
||||||
e_intl.h \
|
|
||||||
e_int_menus.h \
|
|
||||||
e_int_shelf_config.h \
|
|
||||||
e_int_toolbar_config.h \
|
|
||||||
e_ipc_codec.h \
|
|
||||||
e_ipc.h \
|
|
||||||
e_layout.h \
|
|
||||||
e_livethumb.h \
|
|
||||||
e_log.h \
|
|
||||||
e_manager.h \
|
|
||||||
e_maximize.h \
|
|
||||||
e_menu.h \
|
|
||||||
e_mmx.h \
|
|
||||||
e_module.h \
|
|
||||||
e_mouse.h \
|
|
||||||
e_moveresize.h \
|
|
||||||
e_msgbus.h \
|
|
||||||
e_notification.h \
|
|
||||||
e_msg.h \
|
|
||||||
e_obj_dialog.h \
|
|
||||||
e_object.h \
|
|
||||||
e_order.h \
|
|
||||||
e_pan.h \
|
|
||||||
e_path.h \
|
|
||||||
e_place.h \
|
|
||||||
e_pointer.h \
|
|
||||||
e_popup.h \
|
|
||||||
e_powersave.h \
|
|
||||||
e_prefix.h \
|
|
||||||
e_randr.h \
|
|
||||||
e_remember.h \
|
|
||||||
e_resist.h \
|
|
||||||
e_scale.h \
|
|
||||||
e_screensaver.h \
|
|
||||||
e_scrollframe.h \
|
|
||||||
e_sha1.h \
|
|
||||||
e_shelf.h \
|
|
||||||
e_signals.h \
|
|
||||||
e_slidecore.h \
|
|
||||||
e_slider.h \
|
|
||||||
e_slidesel.h \
|
|
||||||
e_spectrum.h \
|
|
||||||
e_startup.h \
|
|
||||||
e_stolen.h \
|
|
||||||
e_sys.h \
|
|
||||||
e_table.h \
|
|
||||||
e_test.h \
|
|
||||||
e_theme_about.h \
|
|
||||||
e_theme.h \
|
|
||||||
e_thumb.h \
|
|
||||||
e_toolbar.h \
|
|
||||||
e_update.h \
|
|
||||||
e_user.h \
|
|
||||||
e_utils.h \
|
|
||||||
e_widget_aspect.h \
|
|
||||||
e_widget_button.h \
|
|
||||||
e_widget_check.h \
|
|
||||||
e_widget_color_well.h \
|
|
||||||
e_widget_config_list.h \
|
|
||||||
e_widget_csel.h \
|
|
||||||
e_widget_cslider.h \
|
|
||||||
e_widget_bgpreview.h \
|
|
||||||
e_widget_entry.h \
|
|
||||||
e_widget_filepreview.h \
|
|
||||||
e_widget_flist.h \
|
|
||||||
e_widget_font_preview.h \
|
|
||||||
e_widget_framelist.h \
|
|
||||||
e_widget_frametable.h \
|
|
||||||
e_widget_fsel.h \
|
|
||||||
e_widget.h \
|
|
||||||
e_widget_ilist.h \
|
|
||||||
e_widget_image.h \
|
|
||||||
e_widget_label.h \
|
|
||||||
e_widget_list.h \
|
|
||||||
e_widget_preview.h \
|
|
||||||
e_widget_radio.h \
|
|
||||||
e_widget_scrollframe.h \
|
|
||||||
e_widget_slider.h \
|
|
||||||
e_widget_spectrum.h \
|
|
||||||
e_widget_table.h \
|
|
||||||
e_widget_textblock.h \
|
|
||||||
e_widget_toolbar.h \
|
|
||||||
e_widget_toolbook.h \
|
|
||||||
e_win.h \
|
|
||||||
e_xinerama.h \
|
|
||||||
e_xkb.h \
|
|
||||||
e_xsettings.h \
|
|
||||||
e_zoomap.h \
|
|
||||||
e_zone.h
|
|
||||||
|
|
||||||
if HAVE_WAYLAND_CLIENTS
|
|
||||||
ENLIGHTENMENTHEADERS += \
|
|
||||||
e_comp_wl.h \
|
|
||||||
e_surface.h
|
|
||||||
endif
|
|
||||||
|
|
||||||
|
|
||||||
enlightenment_src = \
|
|
||||||
e_about.c \
|
|
||||||
e_acpi.c \
|
|
||||||
e_alert.c \
|
|
||||||
e_actions.c \
|
|
||||||
e_atoms.c \
|
|
||||||
e_backlight.c \
|
|
||||||
e_bg.c \
|
|
||||||
e_bindings.c \
|
|
||||||
e_border.c \
|
|
||||||
e_box.c \
|
|
||||||
e_canvas.c \
|
|
||||||
e_color.c \
|
|
||||||
e_color_class.c \
|
|
||||||
e_color_dialog.c \
|
|
||||||
e_comp.c \
|
|
||||||
e_comp_cfdata.c \
|
|
||||||
e_comp_render_update.c \
|
|
||||||
e_config.c \
|
|
||||||
e_config_data.c \
|
|
||||||
e_config_dialog.c \
|
|
||||||
e_configure.c \
|
|
||||||
e_confirm_dialog.c \
|
|
||||||
e_container.c \
|
|
||||||
e_datastore.c \
|
|
||||||
e_dbusmenu.c \
|
|
||||||
e_desk.c \
|
|
||||||
e_deskenv.c \
|
|
||||||
e_desklock.c \
|
|
||||||
e_deskmirror.c \
|
|
||||||
e_dialog.c \
|
|
||||||
e_dnd.c \
|
|
||||||
e_dpms.c \
|
|
||||||
e_desktop_editor.c \
|
|
||||||
e_entry.c \
|
|
||||||
e_entry_dialog.c \
|
|
||||||
e_env.c \
|
|
||||||
e_error.c \
|
|
||||||
e_exec.c \
|
|
||||||
e_exehist.c \
|
|
||||||
e_filereg.c \
|
|
||||||
e_flowlayout.c \
|
|
||||||
e_fm.c \
|
|
||||||
e_fm_custom.c \
|
|
||||||
e_fm_device.c \
|
|
||||||
e_fm_mime.c \
|
|
||||||
e_fm_op_registry.c \
|
|
||||||
e_fm_prop.c \
|
|
||||||
e_fm_shared_codec.c \
|
|
||||||
e_fm_shared_device.c \
|
|
||||||
e_focus.c \
|
|
||||||
e_font.c \
|
|
||||||
e_gadcon.c \
|
|
||||||
e_gadcon_popup.c \
|
|
||||||
e_grabinput.c \
|
|
||||||
e_grab_dialog.c \
|
|
||||||
e_hints.c \
|
|
||||||
e_icon.c \
|
|
||||||
e_ilist.c \
|
|
||||||
e_import_config_dialog.c \
|
|
||||||
e_import_dialog.c \
|
|
||||||
e_init.c \
|
|
||||||
e_int_border_locks.c \
|
|
||||||
e_int_border_menu.c \
|
|
||||||
e_int_border_prop.c \
|
|
||||||
e_int_border_remember.c \
|
|
||||||
e_int_config_modules.c \
|
|
||||||
e_int_gadcon_config.c \
|
|
||||||
e_intl.c \
|
|
||||||
e_intl_data.c \
|
|
||||||
e_int_menus.c \
|
|
||||||
e_int_shelf_config.c \
|
|
||||||
e_int_toolbar_config.c \
|
|
||||||
e_ipc.c \
|
|
||||||
e_ipc_codec.c \
|
|
||||||
e_layout.c \
|
|
||||||
e_livethumb.c \
|
|
||||||
e_log.c \
|
|
||||||
e_manager.c \
|
|
||||||
e_maximize.c \
|
|
||||||
e_menu.c \
|
|
||||||
e_module.c \
|
|
||||||
e_mouse.c \
|
|
||||||
e_moveresize.c \
|
|
||||||
e_msgbus.c \
|
|
||||||
e_notification.c \
|
|
||||||
e_msg.c \
|
|
||||||
e_obj_dialog.c \
|
|
||||||
e_object.c \
|
|
||||||
e_order.c \
|
|
||||||
e_pan.c \
|
|
||||||
e_path.c \
|
|
||||||
e_place.c \
|
|
||||||
e_pointer.c \
|
|
||||||
e_popup.c \
|
|
||||||
e_powersave.c \
|
|
||||||
e_prefix.c \
|
|
||||||
e_randr.c \
|
|
||||||
e_remember.c \
|
|
||||||
e_resist.c \
|
|
||||||
e_scale.c \
|
|
||||||
e_screensaver.c \
|
|
||||||
e_scrollframe.c \
|
|
||||||
e_sha1.c \
|
|
||||||
e_shelf.c \
|
|
||||||
e_signals.c \
|
|
||||||
e_slidecore.c \
|
|
||||||
e_slider.c \
|
|
||||||
e_slidesel.c \
|
|
||||||
e_spectrum.c \
|
|
||||||
e_startup.c \
|
|
||||||
e_stolen.c \
|
|
||||||
e_sys.c \
|
|
||||||
e_table.c \
|
|
||||||
e_test.c \
|
|
||||||
e_theme_about.c \
|
|
||||||
e_theme.c \
|
|
||||||
e_thumb.c \
|
|
||||||
e_toolbar.c \
|
|
||||||
e_update.c \
|
|
||||||
e_user.c \
|
|
||||||
e_utils.c \
|
|
||||||
e_widget_aspect.c \
|
|
||||||
e_widget_button.c \
|
|
||||||
e_widget.c \
|
|
||||||
e_widget_check.c \
|
|
||||||
e_widget_color_well.c \
|
|
||||||
e_widget_config_list.c \
|
|
||||||
e_widget_csel.c \
|
|
||||||
e_widget_cslider.c \
|
|
||||||
e_widget_bgpreview.c \
|
|
||||||
e_widget_entry.c \
|
|
||||||
e_widget_filepreview.c \
|
|
||||||
e_widget_flist.c \
|
|
||||||
e_widget_font_preview.c \
|
|
||||||
e_widget_framelist.c \
|
|
||||||
e_widget_frametable.c \
|
|
||||||
e_widget_fsel.c \
|
|
||||||
e_widget_ilist.c \
|
|
||||||
e_widget_image.c \
|
|
||||||
e_widget_label.c \
|
|
||||||
e_widget_list.c \
|
|
||||||
e_widget_preview.c \
|
|
||||||
e_widget_radio.c \
|
|
||||||
e_widget_scrollframe.c \
|
|
||||||
e_widget_slider.c \
|
|
||||||
e_widget_spectrum.c \
|
|
||||||
e_widget_table.c \
|
|
||||||
e_widget_textblock.c \
|
|
||||||
e_widget_toolbar.c \
|
|
||||||
e_widget_toolbook.c \
|
|
||||||
e_win.c \
|
|
||||||
e_xinerama.c \
|
|
||||||
e_xkb.c \
|
|
||||||
e_xsettings.c \
|
|
||||||
e_zoomap.c \
|
|
||||||
e_zone.c \
|
|
||||||
$(ENLIGHTENMENTHEADERS)
|
|
||||||
|
|
||||||
if HAVE_WAYLAND_CLIENTS
|
|
||||||
enlightenment_src += \
|
|
||||||
e_comp_wl.c \
|
|
||||||
e_surface.c
|
|
||||||
endif
|
|
||||||
|
|
||||||
enlightenment_CFLAGS = $(AM_CPPFLAGS) @WAYLAND_CFLAGS@ @WAYLAND_EGL_CFLAGS@
|
|
||||||
enlightenment_CPPFLAGS = $(AM_CPPFLAGS) -DE_LOGGING=1
|
|
||||||
enlightenment_SOURCES = \
|
|
||||||
e_main.c \
|
|
||||||
$(enlightenment_src)
|
|
||||||
|
|
||||||
enlightenment_LDFLAGS = -export-dynamic
|
|
||||||
enlightenment_LDADD = @e_libs@ @dlopen_libs@ @cf_libs@ @VALGRIND_LIBS@ @WAYLAND_LIBS@ @WAYLAND_EGL_LIBS@ -lm
|
|
||||||
|
|
||||||
enlightenment_imc_SOURCES = \
|
|
||||||
e.h \
|
|
||||||
e_config_data.c \
|
|
||||||
e_imc_main.c \
|
|
||||||
e_intl_data.c
|
|
||||||
|
|
||||||
enlightenment_imc_LDADD = @E_IMC_LIBS@
|
|
||||||
|
|
||||||
enlightenment_start_SOURCES = \
|
|
||||||
e_start_main.c
|
|
||||||
enlightenment_start_CFLAGS = $(AM_CPPFLAGS) @E_START_CFLAGS@
|
|
||||||
enlightenment_start_LDADD = @dlopen_libs@ @E_START_LIBS@
|
|
||||||
|
|
||||||
enlightenment_thumb_SOURCES = \
|
|
||||||
e_sha1.c \
|
|
||||||
e_thumb_main.c \
|
|
||||||
e_user.c
|
|
||||||
|
|
||||||
enlightenment_thumb_LDADD = @E_THUMB_LIBS@
|
|
||||||
|
|
||||||
enlightenment_fm_op_SOURCES = \
|
|
||||||
e_fm_op.c
|
|
||||||
|
|
||||||
enlightenment_fm_op_LDADD = @E_FM_OP_LIBS@ -lm
|
|
||||||
|
|
||||||
enlightenment_sys_SOURCES = \
|
|
||||||
e_sys_main.c e_sys_l2ping.c
|
|
||||||
|
|
||||||
enlightenment_sys_LDADD = @SUID_LDFLAGS@ @E_SYS_LIBS@ @BLUEZ_LIBS@
|
|
||||||
enlightenment_sys_CFLAGS = @SUID_CFLAGS@ @E_SYS_CFLAGS@ @BLUEZ_CFLAGS@
|
|
||||||
|
|
||||||
if HAVE_EEZE
|
|
||||||
enlightenment_backlight_SOURCES = \
|
|
||||||
e_backlight_main.c
|
|
||||||
|
|
||||||
enlightenment_backlight_CFLAGS = @SUID_CFLAGS@ @EEZE_CFLAGS@
|
|
||||||
enlightenment_backlight_LDADD = @SUID_LDFLAGS@ @EEZE_LIBS@
|
|
||||||
endif
|
|
||||||
|
|
||||||
enlightenment_alert_SOURCES = \
|
|
||||||
e_alert_main.c
|
|
||||||
|
|
||||||
enlightenment_alert_LDADD = @E_ALERT_LIBS@
|
|
||||||
enlightenment_alert_CFLAGS = @E_ALERT_CFLAGS@
|
|
||||||
|
|
||||||
enlightenment_filemanager_SOURCES = e_fm_cmdline.c
|
|
||||||
enlightenment_filemanager_LDADD = @E_FM_CMDLINE_LIBS@
|
|
||||||
enlightenment_filemanager_CFLAGS = @E_FM_CMDLINE_CFLAGS@
|
|
||||||
|
|
||||||
enlightenment_open_SOURCES = e_open.c
|
|
||||||
enlightenment_open_LDADD = @E_OPEN_LIBS@
|
|
||||||
enlightenment_open_CFLAGS = @E_OPEN_CFLAGS@
|
|
||||||
|
|
||||||
enlightenment_static_grabber_SOURCES = e_static_grab.c
|
|
||||||
enlightenment_static_grabber_LDADD = @E_GRABBER_LIBS@
|
|
||||||
enlightenment_static_grabber_CFLAGS = @E_GRABBER_CFLAGS@
|
|
||||||
|
|
||||||
# HACK! why install-data-hook? install-exec-hook is run after bin_PROGRAMS
|
|
||||||
# and before internal_bin_PROGRAMS are installed. install-data-hook is
|
|
||||||
# run after both
|
|
||||||
setuid_root_mode = a=rx,u+xs
|
|
||||||
if HAVE_EEZE
|
|
||||||
install-data-hook:
|
|
||||||
@chmod $(setuid_root_mode) $(DESTDIR)$(libdir)/enlightenment/utils/enlightenment_sys$(EXEEXT) || true
|
|
||||||
@chmod $(setuid_root_mode) $(DESTDIR)$(libdir)/enlightenment/utils/enlightenment_backlight$(EXEEXT) || true
|
|
||||||
else
|
|
||||||
install-data-hook:
|
|
||||||
@chmod $(setuid_root_mode) $(DESTDIR)$(libdir)/enlightenment/utils/enlightenment_sys$(EXEEXT) || true
|
|
||||||
endif
|
|
||||||
installed_headersdir = $(prefix)/include/enlightenment
|
|
||||||
installed_headers_DATA = $(ENLIGHTENMENTHEADERS)
|
|
|
@ -0,0 +1,476 @@
|
||||||
|
DISTCLEANFILES += src/bin/e_fm_shared_types.h
|
||||||
|
|
||||||
|
E_CPPFLAGS = \
|
||||||
|
-I$(top_builddir) \
|
||||||
|
-I$(top_builddir)/src/bin \
|
||||||
|
-I$(top_srcdir) \
|
||||||
|
-I$(top_srcdir)/src/bin \
|
||||||
|
@e_cflags@ \
|
||||||
|
@cf_cflags@ \
|
||||||
|
@VALGRIND_CFLAGS@ \
|
||||||
|
@EDJE_DEF@ \
|
||||||
|
@WAYLAND_CFLAGS@ \
|
||||||
|
@WAYLAND_EGL_CFLAGS@ \
|
||||||
|
-DE_BINDIR=\"$(bindir)\" \
|
||||||
|
-DPACKAGE_BIN_DIR=\"@PACKAGE_BIN_DIR@\" \
|
||||||
|
-DPACKAGE_LIB_DIR=\"@PACKAGE_LIB_DIR@\" \
|
||||||
|
-DPACKAGE_DATA_DIR=\"@PACKAGE_DATA_DIR@\" \
|
||||||
|
-DLOCALE_DIR=\"@LOCALE_DIR@\" \
|
||||||
|
-DPACKAGE_SYSCONF_DIR=\"@PACKAGE_SYSCONF_DIR@\"
|
||||||
|
|
||||||
|
bin_PROGRAMS = \
|
||||||
|
src/bin/enlightenment \
|
||||||
|
src/bin/enlightenment_imc \
|
||||||
|
src/bin/enlightenment_start \
|
||||||
|
src/bin/enlightenment_filemanager \
|
||||||
|
src/bin/enlightenment_open
|
||||||
|
|
||||||
|
internal_bindir = $(libdir)/enlightenment/utils
|
||||||
|
internal_bin_PROGRAMS = \
|
||||||
|
src/bin/enlightenment_fm_op \
|
||||||
|
src/bin/enlightenment_sys \
|
||||||
|
src/bin/enlightenment_thumb \
|
||||||
|
src/bin/enlightenment_alert \
|
||||||
|
src/bin/enlightenment_static_grabber
|
||||||
|
|
||||||
|
if HAVE_EEZE
|
||||||
|
internal_bin_PROGRAMS += src/bin/enlightenment_backlight
|
||||||
|
endif
|
||||||
|
|
||||||
|
ENLIGHTENMENTHEADERS = \
|
||||||
|
src/bin/e_about.h \
|
||||||
|
src/bin/e_acpi.h \
|
||||||
|
src/bin/e_actions.h \
|
||||||
|
src/bin/e_alert.h \
|
||||||
|
src/bin/e_atoms.h \
|
||||||
|
src/bin/e_auth.h \
|
||||||
|
src/bin/e_backlight.h \
|
||||||
|
src/bin/e_bg.h \
|
||||||
|
src/bin/e_bindings.h \
|
||||||
|
src/bin/e_box.h \
|
||||||
|
src/bin/e_canvas.h \
|
||||||
|
src/bin/e_client.h \
|
||||||
|
src/bin/e_client.x \
|
||||||
|
src/bin/e_color_class.h \
|
||||||
|
src/bin/e_color_dialog.h \
|
||||||
|
src/bin/e_color.h \
|
||||||
|
src/bin/e_comp.h \
|
||||||
|
src/bin/e_comp_canvas.h \
|
||||||
|
src/bin/e_comp_cfdata.h \
|
||||||
|
src/bin/e_comp_object.h \
|
||||||
|
src/bin/e_comp_x.h \
|
||||||
|
src/bin/e_config_data.h \
|
||||||
|
src/bin/e_config_dialog.h \
|
||||||
|
src/bin/e_config.h \
|
||||||
|
src/bin/e_configure.h \
|
||||||
|
src/bin/e_confirm_dialog.h \
|
||||||
|
src/bin/e_datastore.h \
|
||||||
|
src/bin/e_dbusmenu.h \
|
||||||
|
src/bin/e_desk.h \
|
||||||
|
src/bin/e_deskenv.h \
|
||||||
|
src/bin/e_desklock.h \
|
||||||
|
src/bin/e_deskmirror.h \
|
||||||
|
src/bin/e_dialog.h \
|
||||||
|
src/bin/e_dnd.h \
|
||||||
|
src/bin/e_dpms.h \
|
||||||
|
src/bin/e_desktop_editor.h \
|
||||||
|
src/bin/e_entry.h \
|
||||||
|
src/bin/e_entry_dialog.h \
|
||||||
|
src/bin/e_env.h \
|
||||||
|
src/bin/e_error.h \
|
||||||
|
src/bin/e_exec.h \
|
||||||
|
src/bin/e_exehist.h \
|
||||||
|
src/bin/e_filereg.h \
|
||||||
|
src/bin/e_flowlayout.h \
|
||||||
|
src/bin/e_fm_custom.h \
|
||||||
|
src/bin/e_fm_device.h \
|
||||||
|
src/bin/e_fm.h \
|
||||||
|
src/bin/e_fm_mime.h \
|
||||||
|
src/bin/e_fm_op.h \
|
||||||
|
src/bin/e_fm_op_registry.h \
|
||||||
|
src/bin/e_fm_prop.h \
|
||||||
|
src/bin/e_fm_shared_codec.h \
|
||||||
|
src/bin/e_fm_shared_device.h \
|
||||||
|
src/bin/e_fm_shared_types.h \
|
||||||
|
src/bin/e_focus.h \
|
||||||
|
src/bin/e_font.h \
|
||||||
|
src/bin/e_gadcon.h \
|
||||||
|
src/bin/e_gadcon_popup.h \
|
||||||
|
src/bin/e_grabinput.h \
|
||||||
|
src/bin/e_grab_dialog.h \
|
||||||
|
src/bin/e.h \
|
||||||
|
src/bin/e_hints.h \
|
||||||
|
src/bin/e_icon.h \
|
||||||
|
src/bin/e_ilist.h \
|
||||||
|
src/bin/e_import_config_dialog.h \
|
||||||
|
src/bin/e_import_dialog.h \
|
||||||
|
src/bin/e_includes.h \
|
||||||
|
src/bin/e_init.h \
|
||||||
|
src/bin/e_int_client_locks.h \
|
||||||
|
src/bin/e_int_client_menu.h \
|
||||||
|
src/bin/e_int_client_prop.h \
|
||||||
|
src/bin/e_int_client_remember.h \
|
||||||
|
src/bin/e_int_config_modules.h \
|
||||||
|
src/bin/e_int_gadcon_config.h \
|
||||||
|
src/bin/e_intl_data.h \
|
||||||
|
src/bin/e_intl.h \
|
||||||
|
src/bin/e_int_menus.h \
|
||||||
|
src/bin/e_int_shelf_config.h \
|
||||||
|
src/bin/e_int_toolbar_config.h \
|
||||||
|
src/bin/e_ipc_codec.h \
|
||||||
|
src/bin/e_ipc.h \
|
||||||
|
src/bin/e_layout.h \
|
||||||
|
src/bin/e_livethumb.h \
|
||||||
|
src/bin/e_log.h \
|
||||||
|
src/bin/e_manager.h \
|
||||||
|
src/bin/e_maximize.h \
|
||||||
|
src/bin/e_menu.h \
|
||||||
|
src/bin/e_mmx.h \
|
||||||
|
src/bin/e_module.h \
|
||||||
|
src/bin/e_mouse.h \
|
||||||
|
src/bin/e_moveresize.h \
|
||||||
|
src/bin/e_msgbus.h \
|
||||||
|
src/bin/e_notification.h \
|
||||||
|
src/bin/e_msg.h \
|
||||||
|
src/bin/e_obj_dialog.h \
|
||||||
|
src/bin/e_object.h \
|
||||||
|
src/bin/e_order.h \
|
||||||
|
src/bin/e_pan.h \
|
||||||
|
src/bin/e_path.h \
|
||||||
|
src/bin/e_pixmap.h \
|
||||||
|
src/bin/e_place.h \
|
||||||
|
src/bin/e_pointer.h \
|
||||||
|
src/bin/e_powersave.h \
|
||||||
|
src/bin/e_prefix.h \
|
||||||
|
src/bin/e_randr.h \
|
||||||
|
src/bin/e_remember.h \
|
||||||
|
src/bin/e_resist.h \
|
||||||
|
src/bin/e_scale.h \
|
||||||
|
src/bin/e_screensaver.h \
|
||||||
|
src/bin/e_scrollframe.h \
|
||||||
|
src/bin/e_sha1.h \
|
||||||
|
src/bin/e_shelf.h \
|
||||||
|
src/bin/e_signals.h \
|
||||||
|
src/bin/e_slidecore.h \
|
||||||
|
src/bin/e_slider.h \
|
||||||
|
src/bin/e_slidesel.h \
|
||||||
|
src/bin/e_spectrum.h \
|
||||||
|
src/bin/e_startup.h \
|
||||||
|
src/bin/e_sys.h \
|
||||||
|
src/bin/e_table.h \
|
||||||
|
src/bin/e_test.h \
|
||||||
|
src/bin/e_theme_about.h \
|
||||||
|
src/bin/e_theme.h \
|
||||||
|
src/bin/e_thumb.h \
|
||||||
|
src/bin/e_toolbar.h \
|
||||||
|
src/bin/e_update.h \
|
||||||
|
src/bin/e_user.h \
|
||||||
|
src/bin/e_utils.h \
|
||||||
|
src/bin/e_widget_aspect.h \
|
||||||
|
src/bin/e_widget_button.h \
|
||||||
|
src/bin/e_widget_check.h \
|
||||||
|
src/bin/e_widget_color_well.h \
|
||||||
|
src/bin/e_widget_config_list.h \
|
||||||
|
src/bin/e_widget_csel.h \
|
||||||
|
src/bin/e_widget_cslider.h \
|
||||||
|
src/bin/e_widget_bgpreview.h \
|
||||||
|
src/bin/e_widget_entry.h \
|
||||||
|
src/bin/e_widget_filepreview.h \
|
||||||
|
src/bin/e_widget_flist.h \
|
||||||
|
src/bin/e_widget_font_preview.h \
|
||||||
|
src/bin/e_widget_framelist.h \
|
||||||
|
src/bin/e_widget_frametable.h \
|
||||||
|
src/bin/e_widget_fsel.h \
|
||||||
|
src/bin/e_widget.h \
|
||||||
|
src/bin/e_widget_ilist.h \
|
||||||
|
src/bin/e_widget_image.h \
|
||||||
|
src/bin/e_widget_label.h \
|
||||||
|
src/bin/e_widget_list.h \
|
||||||
|
src/bin/e_widget_preview.h \
|
||||||
|
src/bin/e_widget_radio.h \
|
||||||
|
src/bin/e_widget_scrollframe.h \
|
||||||
|
src/bin/e_widget_slider.h \
|
||||||
|
src/bin/e_widget_spectrum.h \
|
||||||
|
src/bin/e_widget_table.h \
|
||||||
|
src/bin/e_widget_textblock.h \
|
||||||
|
src/bin/e_widget_toolbar.h \
|
||||||
|
src/bin/e_widget_toolbook.h \
|
||||||
|
src/bin/e_win.h \
|
||||||
|
src/bin/e_xinerama.h \
|
||||||
|
src/bin/e_xkb.h \
|
||||||
|
src/bin/e_xsettings.h \
|
||||||
|
src/bin/e_zoomap.h \
|
||||||
|
src/bin/e_zone.h
|
||||||
|
|
||||||
|
if HAVE_WAYLAND_CLIENTS
|
||||||
|
ENLIGHTENMENTHEADERS += \
|
||||||
|
src/bin/e_comp_wl.h
|
||||||
|
endif
|
||||||
|
|
||||||
|
|
||||||
|
enlightenment_src = \
|
||||||
|
src/bin/e_about.c \
|
||||||
|
src/bin/e_acpi.c \
|
||||||
|
src/bin/e_actions.c \
|
||||||
|
src/bin/e_atoms.c \
|
||||||
|
src/bin/e_auth.c \
|
||||||
|
src/bin/e_backlight.c \
|
||||||
|
src/bin/e_bg.c \
|
||||||
|
src/bin/e_bindings.c \
|
||||||
|
src/bin/e_box.c \
|
||||||
|
src/bin/e_canvas.c \
|
||||||
|
src/bin/e_client.c \
|
||||||
|
src/bin/e_color.c \
|
||||||
|
src/bin/e_color_class.c \
|
||||||
|
src/bin/e_color_dialog.c \
|
||||||
|
src/bin/e_comp.c \
|
||||||
|
src/bin/e_comp_canvas.c \
|
||||||
|
src/bin/e_comp_cfdata.c \
|
||||||
|
src/bin/e_comp_object.c \
|
||||||
|
src/bin/e_config.c \
|
||||||
|
src/bin/e_config_data.c \
|
||||||
|
src/bin/e_config_dialog.c \
|
||||||
|
src/bin/e_configure.c \
|
||||||
|
src/bin/e_confirm_dialog.c \
|
||||||
|
src/bin/e_datastore.c \
|
||||||
|
src/bin/e_dbusmenu.c \
|
||||||
|
src/bin/e_desk.c \
|
||||||
|
src/bin/e_deskenv.c \
|
||||||
|
src/bin/e_desklock.c \
|
||||||
|
src/bin/e_deskmirror.c \
|
||||||
|
src/bin/e_dialog.c \
|
||||||
|
src/bin/e_dnd.c \
|
||||||
|
src/bin/e_dpms.c \
|
||||||
|
src/bin/e_desktop_editor.c \
|
||||||
|
src/bin/e_entry.c \
|
||||||
|
src/bin/e_entry_dialog.c \
|
||||||
|
src/bin/e_env.c \
|
||||||
|
src/bin/e_error.c \
|
||||||
|
src/bin/e_exec.c \
|
||||||
|
src/bin/e_exehist.c \
|
||||||
|
src/bin/e_filereg.c \
|
||||||
|
src/bin/e_flowlayout.c \
|
||||||
|
src/bin/e_fm.c \
|
||||||
|
src/bin/e_fm_custom.c \
|
||||||
|
src/bin/e_fm_device.c \
|
||||||
|
src/bin/e_fm_mime.c \
|
||||||
|
src/bin/e_fm_op_registry.c \
|
||||||
|
src/bin/e_fm_prop.c \
|
||||||
|
src/bin/e_fm_shared_codec.c \
|
||||||
|
src/bin/e_fm_shared_device.c \
|
||||||
|
src/bin/e_focus.c \
|
||||||
|
src/bin/e_font.c \
|
||||||
|
src/bin/e_gadcon.c \
|
||||||
|
src/bin/e_gadcon_popup.c \
|
||||||
|
src/bin/e_grabinput.c \
|
||||||
|
src/bin/e_grab_dialog.c \
|
||||||
|
src/bin/e_hints.c \
|
||||||
|
src/bin/e_icon.c \
|
||||||
|
src/bin/e_ilist.c \
|
||||||
|
src/bin/e_import_config_dialog.c \
|
||||||
|
src/bin/e_import_dialog.c \
|
||||||
|
src/bin/e_init.c \
|
||||||
|
src/bin/e_int_client_locks.c \
|
||||||
|
src/bin/e_int_client_menu.c \
|
||||||
|
src/bin/e_int_client_prop.c \
|
||||||
|
src/bin/e_int_client_remember.c \
|
||||||
|
src/bin/e_int_config_modules.c \
|
||||||
|
src/bin/e_int_config_comp.c \
|
||||||
|
src/bin/e_int_config_comp_match.c \
|
||||||
|
src/bin/e_int_gadcon_config.c \
|
||||||
|
src/bin/e_intl.c \
|
||||||
|
src/bin/e_intl_data.c \
|
||||||
|
src/bin/e_int_menus.c \
|
||||||
|
src/bin/e_int_shelf_config.c \
|
||||||
|
src/bin/e_int_toolbar_config.c \
|
||||||
|
src/bin/e_ipc.c \
|
||||||
|
src/bin/e_ipc_codec.c \
|
||||||
|
src/bin/e_layout.c \
|
||||||
|
src/bin/e_livethumb.c \
|
||||||
|
src/bin/e_log.c \
|
||||||
|
src/bin/e_manager.c \
|
||||||
|
src/bin/e_maximize.c \
|
||||||
|
src/bin/e_menu.c \
|
||||||
|
src/bin/e_module.c \
|
||||||
|
src/bin/e_mouse.c \
|
||||||
|
src/bin/e_moveresize.c \
|
||||||
|
src/bin/e_msgbus.c \
|
||||||
|
src/bin/e_notification.c \
|
||||||
|
src/bin/e_msg.c \
|
||||||
|
src/bin/e_obj_dialog.c \
|
||||||
|
src/bin/e_object.c \
|
||||||
|
src/bin/e_order.c \
|
||||||
|
src/bin/e_pan.c \
|
||||||
|
src/bin/e_path.c \
|
||||||
|
src/bin/e_pixmap.c \
|
||||||
|
src/bin/e_place.c \
|
||||||
|
src/bin/e_pointer.c \
|
||||||
|
src/bin/e_powersave.c \
|
||||||
|
src/bin/e_prefix.c \
|
||||||
|
src/bin/e_remember.c \
|
||||||
|
src/bin/e_resist.c \
|
||||||
|
src/bin/e_scale.c \
|
||||||
|
src/bin/e_screensaver.c \
|
||||||
|
src/bin/e_scrollframe.c \
|
||||||
|
src/bin/e_sha1.c \
|
||||||
|
src/bin/e_shelf.c \
|
||||||
|
src/bin/e_signals.c \
|
||||||
|
src/bin/e_slidecore.c \
|
||||||
|
src/bin/e_slider.c \
|
||||||
|
src/bin/e_slidesel.c \
|
||||||
|
src/bin/e_spectrum.c \
|
||||||
|
src/bin/e_startup.c \
|
||||||
|
src/bin/e_sys.c \
|
||||||
|
src/bin/e_table.c \
|
||||||
|
src/bin/e_test.c \
|
||||||
|
src/bin/e_theme_about.c \
|
||||||
|
src/bin/e_theme.c \
|
||||||
|
src/bin/e_thumb.c \
|
||||||
|
src/bin/e_toolbar.c \
|
||||||
|
src/bin/e_update.c \
|
||||||
|
src/bin/e_user.c \
|
||||||
|
src/bin/e_utils.c \
|
||||||
|
src/bin/e_widget_aspect.c \
|
||||||
|
src/bin/e_widget_button.c \
|
||||||
|
src/bin/e_widget.c \
|
||||||
|
src/bin/e_widget_check.c \
|
||||||
|
src/bin/e_widget_color_well.c \
|
||||||
|
src/bin/e_widget_config_list.c \
|
||||||
|
src/bin/e_widget_csel.c \
|
||||||
|
src/bin/e_widget_cslider.c \
|
||||||
|
src/bin/e_widget_bgpreview.c \
|
||||||
|
src/bin/e_widget_entry.c \
|
||||||
|
src/bin/e_widget_filepreview.c \
|
||||||
|
src/bin/e_widget_flist.c \
|
||||||
|
src/bin/e_widget_font_preview.c \
|
||||||
|
src/bin/e_widget_framelist.c \
|
||||||
|
src/bin/e_widget_frametable.c \
|
||||||
|
src/bin/e_widget_fsel.c \
|
||||||
|
src/bin/e_widget_ilist.c \
|
||||||
|
src/bin/e_widget_image.c \
|
||||||
|
src/bin/e_widget_label.c \
|
||||||
|
src/bin/e_widget_list.c \
|
||||||
|
src/bin/e_widget_preview.c \
|
||||||
|
src/bin/e_widget_radio.c \
|
||||||
|
src/bin/e_widget_scrollframe.c \
|
||||||
|
src/bin/e_widget_slider.c \
|
||||||
|
src/bin/e_widget_spectrum.c \
|
||||||
|
src/bin/e_widget_table.c \
|
||||||
|
src/bin/e_widget_textblock.c \
|
||||||
|
src/bin/e_widget_toolbar.c \
|
||||||
|
src/bin/e_widget_toolbook.c \
|
||||||
|
src/bin/e_win.c \
|
||||||
|
src/bin/e_xinerama.c \
|
||||||
|
src/bin/e_zoomap.c \
|
||||||
|
src/bin/e_zone.c \
|
||||||
|
$(ENLIGHTENMENTHEADERS)
|
||||||
|
|
||||||
|
if ! HAVE_WAYLAND_ONLY
|
||||||
|
enlightenment_src += \
|
||||||
|
src/bin/e_alert.c \
|
||||||
|
src/bin/e_comp_x.c \
|
||||||
|
src/bin/e_randr.c \
|
||||||
|
src/bin/e_xkb.c \
|
||||||
|
src/bin/e_xsettings.c
|
||||||
|
endif
|
||||||
|
|
||||||
|
if HAVE_WAYLAND_CLIENTS
|
||||||
|
enlightenment_src += \
|
||||||
|
src/bin/e_comp_wl.c
|
||||||
|
endif
|
||||||
|
|
||||||
|
src_bin_enlightenment_CPPFLAGS = $(E_CPPFLAGS) -DE_LOGGING=1 @WAYLAND_CFLAGS@ @WAYLAND_EGL_CFLAGS@ @ECORE_X_CFLAGS@ -DNEED_X=1
|
||||||
|
src_bin_enlightenment_SOURCES = \
|
||||||
|
src/bin/e_main.c \
|
||||||
|
$(enlightenment_src)
|
||||||
|
|
||||||
|
src_bin_enlightenment_LDFLAGS = -export-dynamic
|
||||||
|
src_bin_enlightenment_LDADD = @e_libs@ @dlopen_libs@ @cf_libs@ @VALGRIND_LIBS@ @WAYLAND_LIBS@ @WAYLAND_EGL_LIBS@ -lm @ECORE_X_LIBS@
|
||||||
|
|
||||||
|
src_bin_enlightenment_imc_SOURCES = \
|
||||||
|
src/bin/e.h \
|
||||||
|
src/bin/e_config_data.c \
|
||||||
|
src/bin/e_imc_main.c \
|
||||||
|
src/bin/e_intl_data.c
|
||||||
|
|
||||||
|
src_bin_enlightenment_imc_LDADD = @E_IMC_LIBS@
|
||||||
|
src_bin_enlightenment_imc_CPPFLAGS = $(E_CPPFLAGS)
|
||||||
|
|
||||||
|
src_bin_enlightenment_start_SOURCES = \
|
||||||
|
src/bin/e_start_main.c
|
||||||
|
src_bin_enlightenment_start_CPPFLAGS = $(E_CPPFLAGS) @E_START_CFLAGS@
|
||||||
|
src_bin_enlightenment_start_LDADD = @dlopen_libs@ @E_START_LIBS@
|
||||||
|
|
||||||
|
src_bin_enlightenment_thumb_SOURCES = \
|
||||||
|
src/bin/e_sha1.c \
|
||||||
|
src/bin/e_thumb_main.c \
|
||||||
|
src/bin/e_user.c
|
||||||
|
|
||||||
|
src_bin_enlightenment_thumb_LDADD = @E_THUMB_LIBS@
|
||||||
|
src_bin_enlightenment_thumb_CPPFLAGS = $(E_CPPFLAGS)
|
||||||
|
|
||||||
|
src_bin_enlightenment_fm_op_SOURCES = \
|
||||||
|
src/bin/e_fm_op.c
|
||||||
|
|
||||||
|
src_bin_enlightenment_fm_op_LDADD = @E_FM_OP_LIBS@ -lm
|
||||||
|
src_bin_enlightenment_fm_op_CPPFLAGS = $(E_CPPFLAGS)
|
||||||
|
|
||||||
|
src_bin_enlightenment_sys_SOURCES = \
|
||||||
|
src/bin/e_sys_main.c \
|
||||||
|
src/bin/e_sys_l2ping.c
|
||||||
|
|
||||||
|
src_bin_enlightenment_sys_LDADD = @SUID_LDFLAGS@ @E_SYS_LIBS@ @BLUEZ_LIBS@
|
||||||
|
src_bin_enlightenment_sys_CPPFLAGS = @SUID_CFLAGS@ @E_SYS_CFLAGS@ @BLUEZ_CFLAGS@ -DPACKAGE_SYSCONF_DIR=\"@PACKAGE_SYSCONF_DIR@\"
|
||||||
|
|
||||||
|
if HAVE_EEZE
|
||||||
|
src_bin_enlightenment_backlight_SOURCES = \
|
||||||
|
src/bin/e_backlight_main.c
|
||||||
|
|
||||||
|
src_bin_enlightenment_backlight_CPPFLAGS = @SUID_CFLAGS@ @EEZE_CFLAGS@
|
||||||
|
src_bin_enlightenment_backlight_LDADD = @SUID_LDFLAGS@ @EEZE_LIBS@
|
||||||
|
endif
|
||||||
|
|
||||||
|
src_bin_enlightenment_alert_SOURCES = \
|
||||||
|
src/bin/e_alert_main.c
|
||||||
|
|
||||||
|
src_bin_enlightenment_alert_LDADD = @E_ALERT_LIBS@
|
||||||
|
src_bin_enlightenment_alert_CPPFLAGS = @E_ALERT_CFLAGS@
|
||||||
|
|
||||||
|
src_bin_enlightenment_filemanager_SOURCES = \
|
||||||
|
src/bin/e_fm_cmdline.c
|
||||||
|
src_bin_enlightenment_filemanager_LDADD = @E_FM_CMDLINE_LIBS@
|
||||||
|
src_bin_enlightenment_filemanager_CPPFLAGS = @E_FM_CMDLINE_CFLAGS@
|
||||||
|
|
||||||
|
src_bin_enlightenment_open_SOURCES = \
|
||||||
|
src/bin/e_open.c
|
||||||
|
src_bin_enlightenment_open_LDADD = @E_OPEN_LIBS@
|
||||||
|
src_bin_enlightenment_open_CPPFLAGS = @E_OPEN_CFLAGS@
|
||||||
|
|
||||||
|
src_bin_enlightenment_static_grabber_SOURCES = \
|
||||||
|
src/bin/e_static_grab.c
|
||||||
|
src_bin_enlightenment_static_grabber_LDADD = @E_GRABBER_LIBS@
|
||||||
|
src_bin_enlightenment_static_grabber_CPPFLAGS = @E_GRABBER_CFLAGS@
|
||||||
|
|
||||||
|
include src/bin/e_fm/Makefile.mk
|
||||||
|
|
||||||
|
# HACK! why install-data-hook? install-exec-hook is run after bin_PROGRAMS
|
||||||
|
# and before internal_bin_PROGRAMS are installed. install-data-hook is
|
||||||
|
# run after both
|
||||||
|
setuid_root_mode = a=rx,u+xs
|
||||||
|
if HAVE_EEZE
|
||||||
|
enlightenment-sys-install-data-hook:
|
||||||
|
@chmod $(setuid_root_mode) $(DESTDIR)$(libdir)/enlightenment/utils/enlightenment_sys$(EXEEXT) || true
|
||||||
|
@chmod $(setuid_root_mode) $(DESTDIR)$(libdir)/enlightenment/utils/enlightenment_backlight$(EXEEXT) || true
|
||||||
|
else
|
||||||
|
enlightenment-sys-install-data-hook:
|
||||||
|
@chmod $(setuid_root_mode) $(DESTDIR)$(libdir)/enlightenment/utils/enlightenment_sys$(EXEEXT) || true
|
||||||
|
endif
|
||||||
|
installed_headersdir = $(prefix)/include/enlightenment
|
||||||
|
installed_headers_DATA = $(ENLIGHTENMENTHEADERS)
|
||||||
|
INSTALL_DATA_HOOKS += enlightenment-sys-install-data-hook
|
||||||
|
|
||||||
|
PHONIES += e enlightenment install-e install-enlightenment
|
||||||
|
e: $(bin_PROGRAMS)
|
||||||
|
enlightenment: e
|
||||||
|
install-e: install-binPROGRAMS
|
||||||
|
install-enlightenment: install-e
|
|
@ -105,7 +105,6 @@ void *alloca (size_t);
|
||||||
# include <Evas_Engine_Buffer.h>
|
# include <Evas_Engine_Buffer.h>
|
||||||
# include <Ecore.h>
|
# include <Ecore.h>
|
||||||
# include <Ecore_Getopt.h>
|
# include <Ecore_Getopt.h>
|
||||||
# include <Ecore_X.h>
|
|
||||||
# include <Ecore_Evas.h>
|
# include <Ecore_Evas.h>
|
||||||
# include <Ecore_Input.h>
|
# include <Ecore_Input.h>
|
||||||
# include <Ecore_Input_Evas.h>
|
# include <Ecore_Input_Evas.h>
|
||||||
|
@ -308,7 +307,8 @@ extern EAPI Eina_Bool e_nopause;
|
||||||
extern EAPI Eina_Bool e_precache_end;
|
extern EAPI Eina_Bool e_precache_end;
|
||||||
extern EAPI Eina_Bool x_fatal;
|
extern EAPI Eina_Bool x_fatal;
|
||||||
|
|
||||||
EAPI void e_alert_composite_win(Ecore_X_Window root, Ecore_X_Window win);
|
extern EINTERN const char *e_first_frame;
|
||||||
|
extern EINTERN double e_first_frame_start_time;
|
||||||
|
|
||||||
//#define SMARTERR(args...) abort()
|
//#define SMARTERR(args...) abort()
|
||||||
#define SMARTERRNR() return
|
#define SMARTERRNR() return
|
||||||
|
|
|
@ -7,14 +7,14 @@
|
||||||
/* externally accessible functions */
|
/* externally accessible functions */
|
||||||
|
|
||||||
EAPI E_About *
|
EAPI E_About *
|
||||||
e_about_new(E_Container *con)
|
e_about_new(E_Comp *c)
|
||||||
{
|
{
|
||||||
E_Obj_Dialog *od;
|
E_Obj_Dialog *od;
|
||||||
char buf[16384];
|
char buf[16384];
|
||||||
FILE *f;
|
FILE *f;
|
||||||
Eina_Strbuf *tbuf;
|
Eina_Strbuf *tbuf;
|
||||||
|
|
||||||
od = e_obj_dialog_new(con, _("About Enlightenment"), "E", "_about");
|
od = e_obj_dialog_new(c, _("About Enlightenment"), "E", "_about");
|
||||||
if (!od) return NULL;
|
if (!od) return NULL;
|
||||||
e_obj_dialog_obj_theme_set(od, "base/theme/about", "e/widgets/about/main");
|
e_obj_dialog_obj_theme_set(od, "base/theme/about", "e/widgets/about/main");
|
||||||
e_obj_dialog_obj_part_text_set(od, "e.text.label", _("Close"));
|
e_obj_dialog_obj_part_text_set(od, "e.text.label", _("Close"));
|
||||||
|
|
|
@ -6,7 +6,7 @@ typedef struct _E_Obj_Dialog E_About;
|
||||||
#ifndef E_ABOUT_H
|
#ifndef E_ABOUT_H
|
||||||
#define E_ABOUT_H
|
#define E_ABOUT_H
|
||||||
|
|
||||||
EAPI E_About *e_about_new (E_Container *con);
|
EAPI E_About *e_about_new (E_Comp *c);
|
||||||
EAPI void e_about_show (E_About *about);
|
EAPI void e_about_show (E_About *about);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -88,7 +88,7 @@ main(int argc, char **argv)
|
||||||
|
|
||||||
fprintf(stderr, "exit_gdb: %i\n", exit_gdb);
|
fprintf(stderr, "exit_gdb: %i\n", exit_gdb);
|
||||||
|
|
||||||
tmp = getenv("E18_TAINTED");
|
tmp = getenv("E19_TAINTED");
|
||||||
if (tmp && !strcmp(tmp, "NO"))
|
if (tmp && !strcmp(tmp, "NO"))
|
||||||
tainted = EINA_FALSE;
|
tainted = EINA_FALSE;
|
||||||
|
|
||||||
|
@ -554,7 +554,7 @@ _e_alert_draw_text(void)
|
||||||
"on. We were not able to generate a backtrace, check \n"
|
"on. We were not able to generate a backtrace, check \n"
|
||||||
"if your 'sysactions.conf' has an 'gdb' action line.\n"
|
"if your 'sysactions.conf' has an 'gdb' action line.\n"
|
||||||
"\n"
|
"\n"
|
||||||
"Please compile latest Git E18 and EFL with\n"
|
"Please compile latest Git E19 and EFL with\n"
|
||||||
"-g and -ggdb3 in your CFLAGS.\n");
|
"-g and -ggdb3 in your CFLAGS.\n");
|
||||||
}
|
}
|
||||||
else if (backtrace_str)
|
else if (backtrace_str)
|
||||||
|
@ -562,9 +562,9 @@ _e_alert_draw_text(void)
|
||||||
snprintf(msg, sizeof(msg),
|
snprintf(msg, sizeof(msg),
|
||||||
"This is not meant to happen and is likely a sign of \n"
|
"This is not meant to happen and is likely a sign of \n"
|
||||||
"a bug in Enlightenment or the libraries it relies \n"
|
"a bug in Enlightenment or the libraries it relies \n"
|
||||||
"on. You will find an backtrace of E18 (%d) in :\n"
|
"on. You will find an backtrace of E19 (%d) in :\n"
|
||||||
"'%s'\n"
|
"'%s'\n"
|
||||||
"Before reporting issue, compile latest E18 and EFL\n"
|
"Before reporting issue, compile latest E19 and EFL\n"
|
||||||
"from Git with '-g -ggdb3' in your CFLAGS.\n"
|
"from Git with '-g -ggdb3' in your CFLAGS.\n"
|
||||||
"You can then report this crash on :\n"
|
"You can then report this crash on :\n"
|
||||||
"https://phab.enlightenment.org/maniphest/.\n",
|
"https://phab.enlightenment.org/maniphest/.\n",
|
||||||
|
@ -580,7 +580,7 @@ _e_alert_draw_text(void)
|
||||||
"recover to try and get your desktop back the way \n"
|
"recover to try and get your desktop back the way \n"
|
||||||
"it was.\n"
|
"it was.\n"
|
||||||
"\n"
|
"\n"
|
||||||
"Please compile latest Git E18 and EFL with\n"
|
"Please compile latest Git E19 and EFL with\n"
|
||||||
"-g and -ggdb3 in your CFLAGS.\n", pid);
|
"-g and -ggdb3 in your CFLAGS.\n", pid);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -592,7 +592,7 @@ _e_alert_draw_text(void)
|
||||||
"modules; before reporting this issue, please\n"
|
"modules; before reporting this issue, please\n"
|
||||||
"unload them and try to see if the bug is still\n"
|
"unload them and try to see if the bug is still\n"
|
||||||
"there. Also update to latest Git and be sure to\n"
|
"there. Also update to latest Git and be sure to\n"
|
||||||
"compile E18 and EFL with -g and -ggdb3 in your CFLAGS");
|
"compile E19 and EFL with -g and -ggdb3 in your CFLAGS");
|
||||||
}
|
}
|
||||||
|
|
||||||
strcpy(warn, "");
|
strcpy(warn, "");
|
||||||
|
|
|
@ -2,7 +2,6 @@
|
||||||
|
|
||||||
/* Atoms */
|
/* Atoms */
|
||||||
EAPI Ecore_X_Atom E_ATOM_MANAGED = 0;
|
EAPI Ecore_X_Atom E_ATOM_MANAGED = 0;
|
||||||
EAPI Ecore_X_Atom E_ATOM_CONTAINER = 0;
|
|
||||||
EAPI Ecore_X_Atom E_ATOM_ZONE = 0;
|
EAPI Ecore_X_Atom E_ATOM_ZONE = 0;
|
||||||
EAPI Ecore_X_Atom E_ATOM_DESK = 0;
|
EAPI Ecore_X_Atom E_ATOM_DESK = 0;
|
||||||
EAPI Ecore_X_Atom E_ATOM_MAPPED = 0;
|
EAPI Ecore_X_Atom E_ATOM_MAPPED = 0;
|
||||||
|
@ -20,7 +19,6 @@ e_atoms_init(void)
|
||||||
{
|
{
|
||||||
const char *atom_names[] = {
|
const char *atom_names[] = {
|
||||||
"__E_WINDOW_MANAGED",
|
"__E_WINDOW_MANAGED",
|
||||||
"__E_WINDOW_CONTAINER",
|
|
||||||
"__E_WINDOW_ZONE",
|
"__E_WINDOW_ZONE",
|
||||||
"__E_WINDOW_DESK",
|
"__E_WINDOW_DESK",
|
||||||
"__E_WINDOW_MAPPED",
|
"__E_WINDOW_MAPPED",
|
||||||
|
@ -32,21 +30,20 @@ e_atoms_init(void)
|
||||||
"__E_ATOM_DESKTOP_FILE",
|
"__E_ATOM_DESKTOP_FILE",
|
||||||
"E_ZONE_GEOMETRY"
|
"E_ZONE_GEOMETRY"
|
||||||
};
|
};
|
||||||
Ecore_X_Atom atoms[12];
|
Ecore_X_Atom atoms[11];
|
||||||
|
|
||||||
ecore_x_atoms_get(atom_names, 12, atoms);
|
ecore_x_atoms_get(atom_names, 11, atoms);
|
||||||
E_ATOM_MANAGED = atoms[0];
|
E_ATOM_MANAGED = atoms[0];
|
||||||
E_ATOM_CONTAINER = atoms[1];
|
E_ATOM_ZONE = atoms[1];
|
||||||
E_ATOM_ZONE = atoms[2];
|
E_ATOM_DESK = atoms[2];
|
||||||
E_ATOM_DESK = atoms[3];
|
E_ATOM_MAPPED = atoms[3];
|
||||||
E_ATOM_MAPPED = atoms[4];
|
E_ATOM_SHADE_DIRECTION = atoms[4];
|
||||||
E_ATOM_SHADE_DIRECTION = atoms[5];
|
E_ATOM_HIDDEN = atoms[5];
|
||||||
E_ATOM_HIDDEN = atoms[6];
|
E_ATOM_BORDER_SIZE = atoms[6];
|
||||||
E_ATOM_BORDER_SIZE = atoms[7];
|
E_ATOM_WINDOW_STATE = atoms[7];
|
||||||
E_ATOM_WINDOW_STATE = atoms[8];
|
E_ATOM_WINDOW_STATE_CENTERED = atoms[8];
|
||||||
E_ATOM_WINDOW_STATE_CENTERED = atoms[9];
|
E_ATOM_DESKTOP_FILE = atoms[9];
|
||||||
E_ATOM_DESKTOP_FILE = atoms[10];
|
E_ATOM_ZONE_GEOMETRY = atoms[10];
|
||||||
E_ATOM_ZONE_GEOMETRY = atoms[11];
|
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -7,7 +7,6 @@
|
||||||
extern EAPI Ecore_X_Atom E_ATOM_MANAGED;
|
extern EAPI Ecore_X_Atom E_ATOM_MANAGED;
|
||||||
|
|
||||||
/* basic window properties */
|
/* basic window properties */
|
||||||
extern EAPI Ecore_X_Atom E_ATOM_CONTAINER;
|
|
||||||
extern EAPI Ecore_X_Atom E_ATOM_ZONE;
|
extern EAPI Ecore_X_Atom E_ATOM_ZONE;
|
||||||
extern EAPI Ecore_X_Atom E_ATOM_DESK;
|
extern EAPI Ecore_X_Atom E_ATOM_DESK;
|
||||||
extern EAPI Ecore_X_Atom E_ATOM_MAPPED;
|
extern EAPI Ecore_X_Atom E_ATOM_MAPPED;
|
||||||
|
|
|
@ -0,0 +1,191 @@
|
||||||
|
#include "e.h"
|
||||||
|
|
||||||
|
#ifdef HAVE_PAM
|
||||||
|
# include <security/pam_appl.h>
|
||||||
|
# include <pwd.h>
|
||||||
|
|
||||||
|
|
||||||
|
typedef struct E_Auth
|
||||||
|
{
|
||||||
|
struct
|
||||||
|
{
|
||||||
|
struct pam_conv conv;
|
||||||
|
pam_handle_t *handle;
|
||||||
|
} pam;
|
||||||
|
|
||||||
|
char user[4096];
|
||||||
|
char passwd[4096];
|
||||||
|
} E_Auth;
|
||||||
|
|
||||||
|
static pid_t _e_auth_child_pid = -1;
|
||||||
|
|
||||||
|
static char *
|
||||||
|
_auth_auth_get_current_user(void)
|
||||||
|
{
|
||||||
|
char *user;
|
||||||
|
struct passwd *pwent = NULL;
|
||||||
|
|
||||||
|
pwent = getpwuid(getuid());
|
||||||
|
user = strdup(pwent->pw_name);
|
||||||
|
return user;
|
||||||
|
}
|
||||||
|
|
||||||
|
static int
|
||||||
|
_auth_auth_pam_conv(int num_msg, const struct pam_message **msg, struct pam_response **resp, void *appdata_ptr)
|
||||||
|
{
|
||||||
|
int replies = 0;
|
||||||
|
E_Auth *da = (E_Auth *)appdata_ptr;
|
||||||
|
struct pam_response *reply = NULL;
|
||||||
|
|
||||||
|
reply = (struct pam_response *)malloc(sizeof(struct pam_response) * num_msg);
|
||||||
|
|
||||||
|
if (!reply) return PAM_CONV_ERR;
|
||||||
|
|
||||||
|
for (replies = 0; replies < num_msg; replies++)
|
||||||
|
{
|
||||||
|
switch (msg[replies]->msg_style)
|
||||||
|
{
|
||||||
|
case PAM_PROMPT_ECHO_ON:
|
||||||
|
reply[replies].resp_retcode = PAM_SUCCESS;
|
||||||
|
reply[replies].resp = strdup(da->user);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case PAM_PROMPT_ECHO_OFF:
|
||||||
|
reply[replies].resp_retcode = PAM_SUCCESS;
|
||||||
|
reply[replies].resp = strdup(da->passwd);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case PAM_ERROR_MSG:
|
||||||
|
case PAM_TEXT_INFO:
|
||||||
|
reply[replies].resp_retcode = PAM_SUCCESS;
|
||||||
|
reply[replies].resp = NULL;
|
||||||
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
free(reply);
|
||||||
|
return PAM_CONV_ERR;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
*resp = reply;
|
||||||
|
return PAM_SUCCESS;
|
||||||
|
}
|
||||||
|
|
||||||
|
static int
|
||||||
|
_auth_pam_init(E_Auth *da)
|
||||||
|
{
|
||||||
|
int pamerr;
|
||||||
|
const char *pam_prof;
|
||||||
|
char *current_host;
|
||||||
|
char *current_user;
|
||||||
|
|
||||||
|
if (!da) return -1;
|
||||||
|
|
||||||
|
da->pam.conv.conv = _auth_auth_pam_conv;
|
||||||
|
da->pam.conv.appdata_ptr = da;
|
||||||
|
da->pam.handle = NULL;
|
||||||
|
|
||||||
|
/* try other pam profiles - and system-auth (login for fbsd users) is a fallback */
|
||||||
|
pam_prof = "login";
|
||||||
|
if (ecore_file_exists("/etc/pam.d/enlightenment"))
|
||||||
|
pam_prof = "enlightenment";
|
||||||
|
else if (ecore_file_exists("/etc/pam.d/xscreensaver"))
|
||||||
|
pam_prof = "xscreensaver";
|
||||||
|
else if (ecore_file_exists("/etc/pam.d/kscreensaver"))
|
||||||
|
pam_prof = "kscreensaver";
|
||||||
|
else if (ecore_file_exists("/etc/pam.d/system-auth"))
|
||||||
|
pam_prof = "system-auth";
|
||||||
|
else if (ecore_file_exists("/etc/pam.d/system"))
|
||||||
|
pam_prof = "system";
|
||||||
|
else if (ecore_file_exists("/etc/pam.d/xdm"))
|
||||||
|
pam_prof = "xdm";
|
||||||
|
else if (ecore_file_exists("/etc/pam.d/gdm"))
|
||||||
|
pam_prof = "gdm";
|
||||||
|
else if (ecore_file_exists("/etc/pam.d/kdm"))
|
||||||
|
pam_prof = "kdm";
|
||||||
|
|
||||||
|
if ((pamerr = pam_start(pam_prof, da->user, &(da->pam.conv),
|
||||||
|
&(da->pam.handle))) != PAM_SUCCESS)
|
||||||
|
return pamerr;
|
||||||
|
|
||||||
|
current_user = _auth_auth_get_current_user();
|
||||||
|
|
||||||
|
if ((pamerr = pam_set_item(da->pam.handle, PAM_USER, current_user)) != PAM_SUCCESS)
|
||||||
|
{
|
||||||
|
free(current_user);
|
||||||
|
return pamerr;
|
||||||
|
}
|
||||||
|
|
||||||
|
current_host = e_auth_hostname_get();
|
||||||
|
if ((pamerr = pam_set_item(da->pam.handle, PAM_RHOST, current_host)) != PAM_SUCCESS)
|
||||||
|
{
|
||||||
|
free(current_user);
|
||||||
|
free(current_host);
|
||||||
|
return pamerr;
|
||||||
|
}
|
||||||
|
|
||||||
|
free(current_user);
|
||||||
|
free(current_host);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
EAPI int
|
||||||
|
e_auth_begin(char *passwd)
|
||||||
|
{
|
||||||
|
#ifdef HAVE_PAM
|
||||||
|
/* child */
|
||||||
|
int pamerr;
|
||||||
|
E_Auth da;
|
||||||
|
char *current_user, *p;
|
||||||
|
struct sigaction action;
|
||||||
|
|
||||||
|
_e_auth_child_pid = fork();
|
||||||
|
if (_e_auth_child_pid > 0) return _e_auth_child_pid;
|
||||||
|
if (_e_auth_child_pid < 0) return -1;
|
||||||
|
|
||||||
|
action.sa_handler = SIG_DFL;
|
||||||
|
action.sa_flags = SA_ONSTACK | SA_NODEFER | SA_RESETHAND | SA_SIGINFO;
|
||||||
|
sigemptyset(&action.sa_mask);
|
||||||
|
sigaction(SIGSEGV, &action, NULL);
|
||||||
|
sigaction(SIGILL, &action, NULL);
|
||||||
|
sigaction(SIGFPE, &action, NULL);
|
||||||
|
sigaction(SIGBUS, &action, NULL);
|
||||||
|
sigaction(SIGABRT, &action, NULL);
|
||||||
|
|
||||||
|
current_user = _auth_auth_get_current_user();
|
||||||
|
eina_strlcpy(da.user, current_user, sizeof(da.user));
|
||||||
|
eina_strlcpy(da.passwd, passwd, sizeof(da.passwd));
|
||||||
|
/* security - null out passwd string once we are done with it */
|
||||||
|
for (p = passwd; *p; p++)
|
||||||
|
*p = 0;
|
||||||
|
da.pam.handle = NULL;
|
||||||
|
da.pam.conv.conv = NULL;
|
||||||
|
da.pam.conv.appdata_ptr = NULL;
|
||||||
|
|
||||||
|
pamerr = _auth_pam_init(&da);
|
||||||
|
if (pamerr != PAM_SUCCESS)
|
||||||
|
{
|
||||||
|
free(current_user);
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
pamerr = pam_authenticate(da.pam.handle, 0);
|
||||||
|
pam_end(da.pam.handle, pamerr);
|
||||||
|
/* security - null out passwd string once we are done with it */
|
||||||
|
memset(da.passwd, 0, sizeof(da.passwd));
|
||||||
|
if (pamerr == PAM_SUCCESS)
|
||||||
|
{
|
||||||
|
free(current_user);
|
||||||
|
exit(0);
|
||||||
|
}
|
||||||
|
free(current_user);
|
||||||
|
exit(-1);
|
||||||
|
#endif
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
EAPI char *
|
||||||
|
e_auth_hostname_get(void)
|
||||||
|
{
|
||||||
|
return strdup("localhost");
|
||||||
|
}
|
|
@ -0,0 +1,7 @@
|
||||||
|
#ifndef E_AUTH_H
|
||||||
|
#define E_AUTH_H
|
||||||
|
|
||||||
|
EAPI int e_auth_begin(char *passwd);
|
||||||
|
EAPI char *e_auth_hostname_get(void);
|
||||||
|
|
||||||
|
#endif
|
|
@ -62,22 +62,22 @@ e_backlight_init(void)
|
||||||
(E_EVENT_CONFIG_MODE_CHANGED, _e_backlight_handler, NULL);
|
(E_EVENT_CONFIG_MODE_CHANGED, _e_backlight_handler, NULL);
|
||||||
|
|
||||||
_e_backlight_handler_border_fullscreen = ecore_event_handler_add
|
_e_backlight_handler_border_fullscreen = ecore_event_handler_add
|
||||||
(E_EVENT_BORDER_FULLSCREEN, _e_backlight_handler, NULL);
|
(E_EVENT_CLIENT_FULLSCREEN, _e_backlight_handler, NULL);
|
||||||
|
|
||||||
_e_backlight_handler_border_unfullscreen = ecore_event_handler_add
|
_e_backlight_handler_border_unfullscreen = ecore_event_handler_add
|
||||||
(E_EVENT_BORDER_UNFULLSCREEN, _e_backlight_handler, NULL);
|
(E_EVENT_CLIENT_UNFULLSCREEN, _e_backlight_handler, NULL);
|
||||||
|
|
||||||
_e_backlight_handler_border_remove = ecore_event_handler_add
|
_e_backlight_handler_border_remove = ecore_event_handler_add
|
||||||
(E_EVENT_BORDER_REMOVE, _e_backlight_handler, NULL);
|
(E_EVENT_CLIENT_REMOVE, _e_backlight_handler, NULL);
|
||||||
|
|
||||||
_e_backlight_handler_border_iconify = ecore_event_handler_add
|
_e_backlight_handler_border_iconify = ecore_event_handler_add
|
||||||
(E_EVENT_BORDER_ICONIFY, _e_backlight_handler, NULL);
|
(E_EVENT_CLIENT_ICONIFY, _e_backlight_handler, NULL);
|
||||||
|
|
||||||
_e_backlight_handler_border_uniconify = ecore_event_handler_add
|
_e_backlight_handler_border_uniconify = ecore_event_handler_add
|
||||||
(E_EVENT_BORDER_UNICONIFY, _e_backlight_handler, NULL);
|
(E_EVENT_CLIENT_UNICONIFY, _e_backlight_handler, NULL);
|
||||||
|
|
||||||
_e_backlight_handler_border_desk_set = ecore_event_handler_add
|
_e_backlight_handler_border_desk_set = ecore_event_handler_add
|
||||||
(E_EVENT_BORDER_DESK_SET, _e_backlight_handler, NULL);
|
(E_EVENT_CLIENT_DESK_SET, _e_backlight_handler, NULL);
|
||||||
|
|
||||||
_e_backlight_handler_desk_show = ecore_event_handler_add
|
_e_backlight_handler_desk_show = ecore_event_handler_add
|
||||||
(E_EVENT_DESK_SHOW, _e_backlight_handler, NULL);
|
(E_EVENT_DESK_SHOW, _e_backlight_handler, NULL);
|
||||||
|
@ -179,23 +179,15 @@ e_backlight_exists(void)
|
||||||
EAPI void
|
EAPI void
|
||||||
e_backlight_update(void)
|
e_backlight_update(void)
|
||||||
{
|
{
|
||||||
Eina_List *m, *c, *z;
|
const Eina_List *l, *ll;
|
||||||
E_Manager *man;
|
E_Comp *c;
|
||||||
E_Container *con;
|
|
||||||
E_Zone *zone;
|
E_Zone *zone;
|
||||||
|
|
||||||
if (bl_avail == EINA_FALSE) return;
|
if (bl_avail == EINA_FALSE) return;
|
||||||
|
|
||||||
EINA_LIST_FOREACH(e_manager_list(), m, man)
|
EINA_LIST_FOREACH(e_comp_list(), l, c)
|
||||||
{
|
EINA_LIST_FOREACH(c->zones, ll, zone)
|
||||||
EINA_LIST_FOREACH(man->containers, c, con)
|
_e_backlight_update(zone);
|
||||||
{
|
|
||||||
EINA_LIST_FOREACH(con->zones, z, zone)
|
|
||||||
{
|
|
||||||
_e_backlight_update(zone);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
EAPI void
|
EAPI void
|
||||||
|
@ -292,43 +284,48 @@ static void
|
||||||
_e_backlight_update(E_Zone *zone)
|
_e_backlight_update(E_Zone *zone)
|
||||||
{
|
{
|
||||||
double x_bl = -1.0;
|
double x_bl = -1.0;
|
||||||
|
#ifndef WAYLAND_ONLY
|
||||||
Ecore_X_Window root;
|
Ecore_X_Window root;
|
||||||
Ecore_X_Randr_Output *out;
|
Ecore_X_Randr_Output *out;
|
||||||
int i, num = 0;
|
int i, num = 0;
|
||||||
|
|
||||||
root = zone->container->manager->root;
|
root = zone->comp->man->root;
|
||||||
// try randr
|
// try randr
|
||||||
out = ecore_x_randr_window_outputs_get(root, &num);
|
if (root && ecore_x_randr_output_backlight_available())
|
||||||
if ((out) && (num > 0) && (ecore_x_randr_output_backlight_available()))
|
|
||||||
{
|
{
|
||||||
char *name;
|
out = ecore_x_randr_window_outputs_get(root, &num);
|
||||||
const char *s;
|
if ((out) && (num > 0))
|
||||||
Eina_Bool gotten = EINA_FALSE;
|
|
||||||
|
|
||||||
EINA_LIST_FREE(bl_devs, s)
|
|
||||||
eina_stringshare_del(s);
|
|
||||||
for (i = 0; i < num; i++)
|
|
||||||
{
|
{
|
||||||
name = ecore_x_randr_output_name_get(root, out[i], NULL);
|
char *name;
|
||||||
bl_devs = eina_list_append(bl_devs, eina_stringshare_add(name));
|
const char *s;
|
||||||
if ((name) && (e_config->backlight.sysdev) &&
|
Eina_Bool gotten = EINA_FALSE;
|
||||||
(!strcmp(name, e_config->backlight.sysdev)))
|
|
||||||
|
EINA_LIST_FREE(bl_devs, s)
|
||||||
|
eina_stringshare_del(s);
|
||||||
|
for (i = 0; i < num; i++)
|
||||||
{
|
{
|
||||||
x_bl = ecore_x_randr_output_backlight_level_get(root, out[i]);
|
name = ecore_x_randr_output_name_get(root, out[i], NULL);
|
||||||
gotten = EINA_TRUE;
|
bl_devs = eina_list_append(bl_devs, eina_stringshare_add(name));
|
||||||
|
if ((name) && (e_config->backlight.sysdev) &&
|
||||||
|
(!strcmp(name, e_config->backlight.sysdev)))
|
||||||
|
{
|
||||||
|
x_bl = ecore_x_randr_output_backlight_level_get(root, out[i]);
|
||||||
|
gotten = EINA_TRUE;
|
||||||
|
}
|
||||||
|
free(name);
|
||||||
}
|
}
|
||||||
free(name);
|
if (!gotten)
|
||||||
|
x_bl = ecore_x_randr_output_backlight_level_get(root, out[0]);
|
||||||
}
|
}
|
||||||
if (!gotten)
|
free(out);
|
||||||
x_bl = ecore_x_randr_output_backlight_level_get(root, out[0]);
|
|
||||||
}
|
}
|
||||||
free(out);
|
|
||||||
if (x_bl >= 0.0)
|
if (x_bl >= 0.0)
|
||||||
{
|
{
|
||||||
bl_val = x_bl;
|
bl_val = x_bl;
|
||||||
sysmode = MODE_RANDR;
|
sysmode = MODE_RANDR;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
#ifdef HAVE_EEZE
|
#ifdef HAVE_EEZE
|
||||||
_bl_sys_find();
|
_bl_sys_find();
|
||||||
if (bl_sysval)
|
if (bl_sysval)
|
||||||
|
@ -343,6 +340,9 @@ _e_backlight_update(E_Zone *zone)
|
||||||
static void
|
static void
|
||||||
_e_backlight_set(E_Zone *zone, double val)
|
_e_backlight_set(E_Zone *zone, double val)
|
||||||
{
|
{
|
||||||
|
#ifdef WAYLAND_ONLY
|
||||||
|
if (0)
|
||||||
|
#else
|
||||||
if (sysmode == MODE_RANDR)
|
if (sysmode == MODE_RANDR)
|
||||||
{
|
{
|
||||||
Ecore_X_Window root;
|
Ecore_X_Window root;
|
||||||
|
@ -350,7 +350,7 @@ _e_backlight_set(E_Zone *zone, double val)
|
||||||
int num = 0, i;
|
int num = 0, i;
|
||||||
char *name;
|
char *name;
|
||||||
|
|
||||||
root = zone->container->manager->root;
|
root = zone->comp->man->root;
|
||||||
out = ecore_x_randr_window_outputs_get(root, &num);
|
out = ecore_x_randr_window_outputs_get(root, &num);
|
||||||
if ((out) && (num > 0))
|
if ((out) && (num > 0))
|
||||||
{
|
{
|
||||||
|
@ -377,6 +377,7 @@ _e_backlight_set(E_Zone *zone, double val)
|
||||||
}
|
}
|
||||||
free(out);
|
free(out);
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
#ifdef HAVE_EEZE
|
#ifdef HAVE_EEZE
|
||||||
else if (sysmode == MODE_SYS)
|
else if (sysmode == MODE_SYS)
|
||||||
{
|
{
|
||||||
|
|
|
@ -76,7 +76,7 @@ e_bg_shutdown(void)
|
||||||
* The most specific match will be returned
|
* The most specific match will be returned
|
||||||
*/
|
*/
|
||||||
EAPI const E_Config_Desktop_Background *
|
EAPI const E_Config_Desktop_Background *
|
||||||
e_bg_config_get(int container_num, int zone_num, int desk_x, int desk_y)
|
e_bg_config_get(int manager_num, int zone_num, int desk_x, int desk_y)
|
||||||
{
|
{
|
||||||
Eina_List *l, *entries;
|
Eina_List *l, *entries;
|
||||||
E_Config_Desktop_Background *bg = NULL, *cfbg = NULL;
|
E_Config_Desktop_Background *bg = NULL, *cfbg = NULL;
|
||||||
|
@ -85,7 +85,7 @@ e_bg_config_get(int container_num, int zone_num, int desk_x, int desk_y)
|
||||||
int current_spec = 0; /* how specific the setting is - we want the least general one that applies */
|
int current_spec = 0; /* how specific the setting is - we want the least general one that applies */
|
||||||
|
|
||||||
/* look for desk specific background. */
|
/* look for desk specific background. */
|
||||||
if (container_num >= 0 || zone_num >= 0 || desk_x >= 0 || desk_y >= 0)
|
if (manager_num >= 0 || zone_num >= 0 || desk_x >= 0 || desk_y >= 0)
|
||||||
{
|
{
|
||||||
EINA_LIST_FOREACH(e_config->desktop_backgrounds, l, cfbg)
|
EINA_LIST_FOREACH(e_config->desktop_backgrounds, l, cfbg)
|
||||||
{
|
{
|
||||||
|
@ -93,8 +93,8 @@ e_bg_config_get(int container_num, int zone_num, int desk_x, int desk_y)
|
||||||
|
|
||||||
if (!cfbg) continue;
|
if (!cfbg) continue;
|
||||||
spec = 0;
|
spec = 0;
|
||||||
if (cfbg->container == container_num) spec++;
|
if (cfbg->manager == manager_num) spec++;
|
||||||
else if (cfbg->container >= 0)
|
else if (cfbg->manager >= 0)
|
||||||
continue;
|
continue;
|
||||||
if (cfbg->zone == zone_num) spec++;
|
if (cfbg->zone == zone_num) spec++;
|
||||||
else if (cfbg->zone >= 0)
|
else if (cfbg->zone >= 0)
|
||||||
|
@ -144,13 +144,13 @@ e_bg_config_get(int container_num, int zone_num, int desk_x, int desk_y)
|
||||||
}
|
}
|
||||||
|
|
||||||
EAPI Eina_Stringshare *
|
EAPI Eina_Stringshare *
|
||||||
e_bg_file_get(int container_num, int zone_num, int desk_x, int desk_y)
|
e_bg_file_get(int manager_num, int zone_num, int desk_x, int desk_y)
|
||||||
{
|
{
|
||||||
const E_Config_Desktop_Background *cfbg;
|
const E_Config_Desktop_Background *cfbg;
|
||||||
const char *bgfile = NULL;
|
const char *bgfile = NULL;
|
||||||
int ok = 0;
|
int ok = 0;
|
||||||
|
|
||||||
cfbg = e_bg_config_get(container_num, zone_num, desk_x, desk_y);
|
cfbg = e_bg_config_get(manager_num, zone_num, desk_x, desk_y);
|
||||||
|
|
||||||
/* fall back to default */
|
/* fall back to default */
|
||||||
if (cfbg)
|
if (cfbg)
|
||||||
|
@ -208,9 +208,9 @@ e_bg_zone_update(E_Zone *zone, E_Bg_Transition transition)
|
||||||
|
|
||||||
desk = e_desk_current_get(zone);
|
desk = e_desk_current_get(zone);
|
||||||
if (desk)
|
if (desk)
|
||||||
bgfile = e_bg_file_get(zone->container->num, zone->num, desk->x, desk->y);
|
bgfile = e_bg_file_get(zone->comp->num, zone->num, desk->x, desk->y);
|
||||||
else
|
else
|
||||||
bgfile = e_bg_file_get(zone->container->num, zone->num, -1, -1);
|
bgfile = e_bg_file_get(zone->comp->num, zone->num, -1, -1);
|
||||||
|
|
||||||
if (zone->bg_object)
|
if (zone->bg_object)
|
||||||
{
|
{
|
||||||
|
@ -233,39 +233,43 @@ e_bg_zone_update(E_Zone *zone, E_Bg_Transition transition)
|
||||||
zone->bg_object = NULL;
|
zone->bg_object = NULL;
|
||||||
E_FREE_FUNC(zone->transition_object, evas_object_del);
|
E_FREE_FUNC(zone->transition_object, evas_object_del);
|
||||||
}
|
}
|
||||||
o = edje_object_add(zone->container->bg_evas);
|
o = edje_object_add(zone->comp->evas);
|
||||||
evas_object_repeat_events_set(o, 1);
|
evas_object_repeat_events_set(o, 1);
|
||||||
zone->transition_object = o;
|
zone->transition_object = o;
|
||||||
|
evas_object_name_set(zone->transition_object, "zone->transition_object");
|
||||||
/* FIXME: segv if zone is deleted while up??? */
|
/* FIXME: segv if zone is deleted while up??? */
|
||||||
evas_object_data_set(o, "e_zone", zone);
|
evas_object_data_set(o, "e_zone", zone);
|
||||||
snprintf(buf, sizeof(buf), "e/transitions/%s", trans);
|
snprintf(buf, sizeof(buf), "e/transitions/%s", trans);
|
||||||
e_theme_edje_object_set(o, "base/theme/transitions", buf);
|
e_theme_edje_object_set(o, "base/theme/transitions", buf);
|
||||||
edje_object_signal_callback_add(o, "e,state,done", "*", _e_bg_signal, zone);
|
edje_object_signal_callback_add(o, "e,state,done", "*", _e_bg_signal, zone);
|
||||||
evas_object_layer_set(o, E_COMP_CANVAS_LAYER_BG);
|
evas_object_move(o, zone->x, zone->y);
|
||||||
|
evas_object_resize(o, zone->w, zone->h);
|
||||||
|
evas_object_layer_set(o, E_LAYER_BG);
|
||||||
evas_object_clip_set(o, zone->bg_clip_object);
|
evas_object_clip_set(o, zone->bg_clip_object);
|
||||||
evas_object_show(o);
|
evas_object_show(o);
|
||||||
}
|
}
|
||||||
if (eina_str_has_extension(bgfile, ".edj"))
|
if (eina_str_has_extension(bgfile, ".edj"))
|
||||||
{
|
{
|
||||||
o = edje_object_add(zone->container->bg_evas);
|
o = edje_object_add(zone->comp->evas);
|
||||||
edje_object_file_set(o, bgfile, "e/desktop/background");
|
edje_object_file_set(o, bgfile, "e/desktop/background");
|
||||||
if (edje_object_data_get(o, "noanimation"))
|
if (edje_object_data_get(o, "noanimation"))
|
||||||
edje_object_animation_set(o, EINA_FALSE);
|
edje_object_animation_set(o, EINA_FALSE);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
o = e_icon_add(zone->container->bg_evas);
|
o = e_icon_add(zone->comp->evas);
|
||||||
e_icon_file_key_set(o, bgfile, NULL);
|
e_icon_file_key_set(o, bgfile, NULL);
|
||||||
e_icon_fill_inside_set(o, 0);
|
e_icon_fill_inside_set(o, 0);
|
||||||
}
|
}
|
||||||
evas_object_data_set(o, "e_zone", zone);
|
evas_object_data_set(o, "e_zone", zone);
|
||||||
evas_object_repeat_events_set(o, 1);
|
evas_object_repeat_events_set(o, 1);
|
||||||
zone->bg_object = o;
|
zone->bg_object = o;
|
||||||
|
evas_object_name_set(zone->bg_object, "zone->bg_object");
|
||||||
if (transition == E_BG_TRANSITION_NONE)
|
if (transition == E_BG_TRANSITION_NONE)
|
||||||
{
|
{
|
||||||
evas_object_move(o, zone->x, zone->y);
|
evas_object_move(o, zone->x, zone->y);
|
||||||
evas_object_resize(o, zone->w, zone->h);
|
evas_object_resize(o, zone->w, zone->h);
|
||||||
evas_object_layer_set(o, E_COMP_CANVAS_LAYER_BG);
|
evas_object_layer_set(o, E_LAYER_BG);
|
||||||
}
|
}
|
||||||
evas_object_clip_set(o, zone->bg_clip_object);
|
evas_object_clip_set(o, zone->bg_clip_object);
|
||||||
evas_object_show(o);
|
evas_object_show(o);
|
||||||
|
@ -285,9 +289,9 @@ e_bg_zone_update(E_Zone *zone, E_Bg_Transition transition)
|
||||||
if (zone->bg_object) evas_object_name_set(zone->bg_object, "zone->bg_object");
|
if (zone->bg_object) evas_object_name_set(zone->bg_object, "zone->bg_object");
|
||||||
if (zone->prev_bg_object) evas_object_name_set(zone->prev_bg_object, "zone->prev_bg_object");
|
if (zone->prev_bg_object) evas_object_name_set(zone->prev_bg_object, "zone->prev_bg_object");
|
||||||
if (zone->transition_object) evas_object_name_set(zone->transition_object, "zone->transition_object");
|
if (zone->transition_object) evas_object_name_set(zone->transition_object, "zone->transition_object");
|
||||||
if (zone->comp_zone) e_comp_zone_update(zone->comp_zone);
|
|
||||||
evas_object_move(zone->transition_object, zone->x, zone->y);
|
evas_object_move(zone->transition_object, zone->x, zone->y);
|
||||||
evas_object_resize(zone->transition_object, zone->w, zone->h);
|
evas_object_resize(zone->transition_object, zone->w, zone->h);
|
||||||
|
e_comp_canvas_zone_update(zone);
|
||||||
end:
|
end:
|
||||||
eina_stringshare_del(bgfile);
|
eina_stringshare_del(bgfile);
|
||||||
}
|
}
|
||||||
|
@ -322,7 +326,7 @@ e_bg_default_set(const char *file)
|
||||||
e_config->desktop_default_background = NULL;
|
e_config->desktop_default_background = NULL;
|
||||||
|
|
||||||
ev = E_NEW(E_Event_Bg_Update, 1);
|
ev = E_NEW(E_Event_Bg_Update, 1);
|
||||||
ev->container = -1;
|
ev->manager = -1;
|
||||||
ev->zone = -1;
|
ev->zone = -1;
|
||||||
ev->desk_x = -1;
|
ev->desk_x = -1;
|
||||||
ev->desk_y = -1;
|
ev->desk_y = -1;
|
||||||
|
@ -330,7 +334,7 @@ e_bg_default_set(const char *file)
|
||||||
}
|
}
|
||||||
|
|
||||||
EAPI void
|
EAPI void
|
||||||
e_bg_add(int container, int zone, int desk_x, int desk_y, const char *file)
|
e_bg_add(int manager, int zone, int desk_x, int desk_y, const char *file)
|
||||||
{
|
{
|
||||||
const Eina_List *l;
|
const Eina_List *l;
|
||||||
E_Config_Desktop_Background *cfbg;
|
E_Config_Desktop_Background *cfbg;
|
||||||
|
@ -341,7 +345,7 @@ e_bg_add(int container, int zone, int desk_x, int desk_y, const char *file)
|
||||||
EINA_LIST_FOREACH(e_config->desktop_backgrounds, l, cfbg)
|
EINA_LIST_FOREACH(e_config->desktop_backgrounds, l, cfbg)
|
||||||
{
|
{
|
||||||
if ((cfbg) &&
|
if ((cfbg) &&
|
||||||
(cfbg->container == container) &&
|
(cfbg->manager == manager) &&
|
||||||
(cfbg->zone == zone) &&
|
(cfbg->zone == zone) &&
|
||||||
(cfbg->desk_x == desk_x) &&
|
(cfbg->desk_x == desk_x) &&
|
||||||
(cfbg->desk_y == desk_y) &&
|
(cfbg->desk_y == desk_y) &&
|
||||||
|
@ -352,9 +356,9 @@ e_bg_add(int container, int zone, int desk_x, int desk_y, const char *file)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
e_bg_del(container, zone, desk_x, desk_y);
|
e_bg_del(manager, zone, desk_x, desk_y);
|
||||||
cfbg = E_NEW(E_Config_Desktop_Background, 1);
|
cfbg = E_NEW(E_Config_Desktop_Background, 1);
|
||||||
cfbg->container = container;
|
cfbg->manager = manager;
|
||||||
cfbg->zone = zone;
|
cfbg->zone = zone;
|
||||||
cfbg->desk_x = desk_x;
|
cfbg->desk_x = desk_x;
|
||||||
cfbg->desk_y = desk_y;
|
cfbg->desk_y = desk_y;
|
||||||
|
@ -364,7 +368,7 @@ e_bg_add(int container, int zone, int desk_x, int desk_y, const char *file)
|
||||||
e_filereg_register(cfbg->file);
|
e_filereg_register(cfbg->file);
|
||||||
|
|
||||||
ev = E_NEW(E_Event_Bg_Update, 1);
|
ev = E_NEW(E_Event_Bg_Update, 1);
|
||||||
ev->container = container;
|
ev->manager = manager;
|
||||||
ev->zone = zone;
|
ev->zone = zone;
|
||||||
ev->desk_x = desk_x;
|
ev->desk_x = desk_x;
|
||||||
ev->desk_y = desk_y;
|
ev->desk_y = desk_y;
|
||||||
|
@ -372,7 +376,7 @@ e_bg_add(int container, int zone, int desk_x, int desk_y, const char *file)
|
||||||
}
|
}
|
||||||
|
|
||||||
EAPI void
|
EAPI void
|
||||||
e_bg_del(int container, int zone, int desk_x, int desk_y)
|
e_bg_del(int manager, int zone, int desk_x, int desk_y)
|
||||||
{
|
{
|
||||||
Eina_List *l;
|
Eina_List *l;
|
||||||
E_Config_Desktop_Background *cfbg;
|
E_Config_Desktop_Background *cfbg;
|
||||||
|
@ -381,7 +385,7 @@ e_bg_del(int container, int zone, int desk_x, int desk_y)
|
||||||
EINA_LIST_FOREACH(e_config->desktop_backgrounds, l, cfbg)
|
EINA_LIST_FOREACH(e_config->desktop_backgrounds, l, cfbg)
|
||||||
{
|
{
|
||||||
if (!cfbg) continue;
|
if (!cfbg) continue;
|
||||||
if ((cfbg->container == container) && (cfbg->zone == zone) &&
|
if ((cfbg->manager == manager) && (cfbg->zone == zone) &&
|
||||||
(cfbg->desk_x == desk_x) && (cfbg->desk_y == desk_y))
|
(cfbg->desk_x == desk_x) && (cfbg->desk_y == desk_y))
|
||||||
{
|
{
|
||||||
e_config->desktop_backgrounds = eina_list_remove_list(e_config->desktop_backgrounds, l);
|
e_config->desktop_backgrounds = eina_list_remove_list(e_config->desktop_backgrounds, l);
|
||||||
|
@ -393,7 +397,7 @@ e_bg_del(int container, int zone, int desk_x, int desk_y)
|
||||||
}
|
}
|
||||||
|
|
||||||
ev = E_NEW(E_Event_Bg_Update, 1);
|
ev = E_NEW(E_Event_Bg_Update, 1);
|
||||||
ev->container = container;
|
ev->manager = manager;
|
||||||
ev->zone = zone;
|
ev->zone = zone;
|
||||||
ev->desk_x = desk_x;
|
ev->desk_x = desk_x;
|
||||||
ev->desk_y = desk_y;
|
ev->desk_y = desk_y;
|
||||||
|
@ -403,21 +407,13 @@ e_bg_del(int container, int zone, int desk_x, int desk_y)
|
||||||
EAPI void
|
EAPI void
|
||||||
e_bg_update(void)
|
e_bg_update(void)
|
||||||
{
|
{
|
||||||
Eina_List *l, *ll, *lll;
|
const Eina_List *l, *ll;
|
||||||
E_Manager *man;
|
E_Comp *c;
|
||||||
E_Container *con;
|
|
||||||
E_Zone *zone;
|
E_Zone *zone;
|
||||||
|
|
||||||
EINA_LIST_FOREACH(e_manager_list(), l, man)
|
EINA_LIST_FOREACH(e_comp_list(), l, c)
|
||||||
{
|
EINA_LIST_FOREACH(c->zones, ll, zone)
|
||||||
EINA_LIST_FOREACH(man->containers, ll, con)
|
e_zone_bg_reconfigure(zone);
|
||||||
{
|
|
||||||
EINA_LIST_FOREACH(con->zones, lll, zone)
|
|
||||||
{
|
|
||||||
e_zone_bg_reconfigure(zone);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* local subsystem functions */
|
/* local subsystem functions */
|
||||||
|
@ -507,19 +503,11 @@ _e_bg_signal(void *data, Evas_Object *obj __UNUSED__, const char *emission __UNU
|
||||||
{
|
{
|
||||||
E_Zone *zone = data;
|
E_Zone *zone = data;
|
||||||
|
|
||||||
if (zone->prev_bg_object)
|
E_FREE_FUNC(zone->prev_bg_object, evas_object_del);
|
||||||
{
|
E_FREE_FUNC(zone->transition_object, evas_object_del);
|
||||||
evas_object_del(zone->prev_bg_object);
|
|
||||||
zone->prev_bg_object = NULL;
|
|
||||||
}
|
|
||||||
if (zone->transition_object)
|
|
||||||
{
|
|
||||||
evas_object_del(zone->transition_object);
|
|
||||||
zone->transition_object = NULL;
|
|
||||||
}
|
|
||||||
evas_object_move(zone->bg_object, zone->x, zone->y);
|
evas_object_move(zone->bg_object, zone->x, zone->y);
|
||||||
evas_object_resize(zone->bg_object, zone->w, zone->h);
|
evas_object_resize(zone->bg_object, zone->w, zone->h);
|
||||||
evas_object_layer_set(zone->bg_object, E_COMP_CANVAS_LAYER_BG);
|
evas_object_layer_set(zone->bg_object, E_LAYER_BG);
|
||||||
evas_object_clip_set(zone->bg_object, zone->bg_clip_object);
|
evas_object_clip_set(zone->bg_object, zone->bg_clip_object);
|
||||||
evas_object_show(zone->bg_object);
|
evas_object_show(zone->bg_object);
|
||||||
}
|
}
|
||||||
|
|
|
@ -19,7 +19,7 @@ extern EAPI int E_EVENT_BG_UPDATE;
|
||||||
|
|
||||||
struct _E_Event_Bg_Update
|
struct _E_Event_Bg_Update
|
||||||
{
|
{
|
||||||
int container;
|
int manager;
|
||||||
int zone;
|
int zone;
|
||||||
int desk_x;
|
int desk_x;
|
||||||
int desk_y;
|
int desk_y;
|
||||||
|
@ -28,11 +28,11 @@ struct _E_Event_Bg_Update
|
||||||
EINTERN int e_bg_init(void);
|
EINTERN int e_bg_init(void);
|
||||||
EINTERN int e_bg_shutdown(void);
|
EINTERN int e_bg_shutdown(void);
|
||||||
|
|
||||||
EAPI const E_Config_Desktop_Background *e_bg_config_get(int container_num, int zone_num, int desk_x, int desk_y);
|
EAPI const E_Config_Desktop_Background *e_bg_config_get(int manager_num, int zone_num, int desk_x, int desk_y);
|
||||||
EAPI Eina_Stringshare *e_bg_file_get(int container_num, int zone_num, int desk_x, int desk_y);
|
EAPI Eina_Stringshare *e_bg_file_get(int manager_num, int zone_num, int desk_x, int desk_y);
|
||||||
EAPI void e_bg_zone_update(E_Zone *zone, E_Bg_Transition transition);
|
EAPI void e_bg_zone_update(E_Zone *zone, E_Bg_Transition transition);
|
||||||
EAPI void e_bg_add(int container, int zone, int desk_x, int desk_y, const char *file);
|
EAPI void e_bg_add(int manager, int zone, int desk_x, int desk_y, const char *file);
|
||||||
EAPI void e_bg_del(int container, int zone, int desk_x, int desk_y);
|
EAPI void e_bg_del(int manager, int zone, int desk_x, int desk_y);
|
||||||
EAPI void e_bg_default_set(const char *file);
|
EAPI void e_bg_default_set(const char *file);
|
||||||
EAPI void e_bg_update(void);
|
EAPI void e_bg_update(void);
|
||||||
|
|
||||||
|
|
|
@ -1,8 +1,6 @@
|
||||||
#include "e.h"
|
#include "e.h"
|
||||||
|
|
||||||
/* local subsystem functions */
|
/* local subsystem functions */
|
||||||
static Eina_Bool _e_bindings_mapping_change_event_cb(void *data, int type, void *event);
|
|
||||||
|
|
||||||
static void _e_bindings_mouse_free(E_Binding_Mouse *bind);
|
static void _e_bindings_mouse_free(E_Binding_Mouse *bind);
|
||||||
static void _e_bindings_key_free(E_Binding_Key *bind);
|
static void _e_bindings_key_free(E_Binding_Key *bind);
|
||||||
static void _e_bindings_edge_free(E_Binding_Edge *bind);
|
static void _e_bindings_edge_free(E_Binding_Edge *bind);
|
||||||
|
@ -15,15 +13,12 @@ static Eina_Bool _e_bindings_edge_cb_timer(void *data);
|
||||||
|
|
||||||
/* local subsystem globals */
|
/* local subsystem globals */
|
||||||
|
|
||||||
static Ecore_Event_Handler *mapping_handler = NULL;
|
|
||||||
|
|
||||||
static Eina_List *mouse_bindings = NULL;
|
static Eina_List *mouse_bindings = NULL;
|
||||||
static Eina_List *key_bindings = NULL;
|
static Eina_List *key_bindings = NULL;
|
||||||
static Eina_List *edge_bindings = NULL;
|
static Eina_List *edge_bindings = NULL;
|
||||||
static Eina_List *signal_bindings = NULL;
|
static Eina_List *signal_bindings = NULL;
|
||||||
static Eina_List *wheel_bindings = NULL;
|
static Eina_List *wheel_bindings = NULL;
|
||||||
static Eina_List *acpi_bindings = NULL;
|
static Eina_List *acpi_bindings = NULL;
|
||||||
static int _e_bindings_mapping_change_enabled = 1;
|
|
||||||
|
|
||||||
typedef struct _E_Binding_Edge_Data E_Binding_Edge_Data;
|
typedef struct _E_Binding_Edge_Data E_Binding_Edge_Data;
|
||||||
|
|
||||||
|
@ -48,9 +43,6 @@ e_bindings_init(void)
|
||||||
E_Config_Binding_Acpi *eba;
|
E_Config_Binding_Acpi *eba;
|
||||||
Eina_List *l;
|
Eina_List *l;
|
||||||
|
|
||||||
mapping_handler = ecore_event_handler_add
|
|
||||||
(ECORE_X_EVENT_MAPPING_CHANGE, _e_bindings_mapping_change_event_cb, NULL);
|
|
||||||
|
|
||||||
EINA_LIST_FOREACH(e_bindings->mouse_bindings, l, ebm)
|
EINA_LIST_FOREACH(e_bindings->mouse_bindings, l, ebm)
|
||||||
e_bindings_mouse_add(ebm->context, ebm->button, ebm->modifiers,
|
e_bindings_mouse_add(ebm->context, ebm->button, ebm->modifiers,
|
||||||
ebm->any_mod, ebm->action, ebm->params);
|
ebm->any_mod, ebm->action, ebm->params);
|
||||||
|
@ -105,12 +97,6 @@ e_bindings_shutdown(void)
|
||||||
E_FREE_LIST(wheel_bindings, _e_bindings_wheel_free);
|
E_FREE_LIST(wheel_bindings, _e_bindings_wheel_free);
|
||||||
E_FREE_LIST(acpi_bindings, _e_bindings_acpi_free);
|
E_FREE_LIST(acpi_bindings, _e_bindings_acpi_free);
|
||||||
|
|
||||||
if (mapping_handler)
|
|
||||||
{
|
|
||||||
ecore_event_handler_del(mapping_handler);
|
|
||||||
mapping_handler = NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -136,7 +122,8 @@ e_bindings_ecore_event_mouse_wheel_convert(const Ecore_Event_Mouse_Wheel *ev, E_
|
||||||
memset(event, 0, sizeof(E_Binding_Event_Wheel));
|
memset(event, 0, sizeof(E_Binding_Event_Wheel));
|
||||||
event->direction = ev->direction;
|
event->direction = ev->direction;
|
||||||
event->z = ev->z;
|
event->z = ev->z;
|
||||||
event->canvas.x = ev->root.x, event->canvas.y = ev->root.y;
|
event->canvas.x = e_comp_canvas_x_root_adjust(e_comp_get(NULL), ev->root.x);
|
||||||
|
event->canvas.y = e_comp_canvas_x_root_adjust(e_comp_get(NULL), ev->root.y);
|
||||||
event->timestamp = ev->timestamp;
|
event->timestamp = ev->timestamp;
|
||||||
event->modifiers = _e_bindings_modifiers(ev->modifiers);
|
event->modifiers = _e_bindings_modifiers(ev->modifiers);
|
||||||
}
|
}
|
||||||
|
@ -146,7 +133,8 @@ e_bindings_ecore_event_mouse_button_convert(const Ecore_Event_Mouse_Button *ev,
|
||||||
{
|
{
|
||||||
memset(event, 0, sizeof(E_Binding_Event_Mouse_Button));
|
memset(event, 0, sizeof(E_Binding_Event_Mouse_Button));
|
||||||
event->button = ev->buttons;
|
event->button = ev->buttons;
|
||||||
event->canvas.x = ev->root.x, event->canvas.y = ev->root.y;
|
event->canvas.x = e_comp_canvas_x_root_adjust(e_comp_get(NULL), ev->root.x);
|
||||||
|
event->canvas.y = e_comp_canvas_x_root_adjust(e_comp_get(NULL), ev->root.y);
|
||||||
event->timestamp = ev->timestamp;
|
event->timestamp = ev->timestamp;
|
||||||
event->modifiers = _e_bindings_modifiers(ev->modifiers);
|
event->modifiers = _e_bindings_modifiers(ev->modifiers);
|
||||||
|
|
||||||
|
@ -189,6 +177,20 @@ e_bindings_evas_event_mouse_wheel_convert(const Evas_Event_Mouse_Wheel *ev, E_Bi
|
||||||
*/
|
*/
|
||||||
}
|
}
|
||||||
|
|
||||||
|
EAPI int
|
||||||
|
e_bindings_evas_modifiers_convert(Evas_Modifier *modifiers)
|
||||||
|
{
|
||||||
|
int mod = 0;
|
||||||
|
|
||||||
|
mod |= (E_BINDING_MODIFIER_SHIFT * evas_key_modifier_is_set(modifiers, "Shift"));
|
||||||
|
mod |= (E_BINDING_MODIFIER_CTRL * evas_key_modifier_is_set(modifiers, "Control"));
|
||||||
|
mod |= (E_BINDING_MODIFIER_ALT * evas_key_modifier_is_set(modifiers, "Alt"));
|
||||||
|
mod |= (E_BINDING_MODIFIER_WIN * evas_key_modifier_is_set(modifiers, "Super"));
|
||||||
|
mod |= (E_BINDING_MODIFIER_WIN * evas_key_modifier_is_set(modifiers, "Hyper"));
|
||||||
|
mod |= (E_BINDING_MODIFIER_ALTGR * evas_key_modifier_is_set(modifiers, "AltGr"));
|
||||||
|
return mod;
|
||||||
|
}
|
||||||
|
|
||||||
EAPI void
|
EAPI void
|
||||||
e_bindings_evas_event_mouse_button_convert(const Evas_Event_Mouse_Down *ev, E_Binding_Event_Mouse_Button *event)
|
e_bindings_evas_event_mouse_button_convert(const Evas_Event_Mouse_Down *ev, E_Binding_Event_Mouse_Button *event)
|
||||||
{
|
{
|
||||||
|
@ -197,12 +199,7 @@ e_bindings_evas_event_mouse_button_convert(const Evas_Event_Mouse_Down *ev, E_Bi
|
||||||
event->canvas.x = ev->output.x, event->canvas.y = ev->output.y;
|
event->canvas.x = ev->output.x, event->canvas.y = ev->output.y;
|
||||||
event->timestamp = ev->timestamp;
|
event->timestamp = ev->timestamp;
|
||||||
|
|
||||||
event->modifiers |= (E_BINDING_MODIFIER_SHIFT * evas_key_modifier_is_set(ev->modifiers, "Shift"));
|
event->modifiers = e_bindings_evas_modifiers_convert(ev->modifiers);
|
||||||
event->modifiers |= (E_BINDING_MODIFIER_CTRL * evas_key_modifier_is_set(ev->modifiers, "Control"));
|
|
||||||
event->modifiers |= (E_BINDING_MODIFIER_ALT * evas_key_modifier_is_set(ev->modifiers, "Alt"));
|
|
||||||
event->modifiers |= (E_BINDING_MODIFIER_WIN * evas_key_modifier_is_set(ev->modifiers, "Super"));
|
|
||||||
event->modifiers |= (E_BINDING_MODIFIER_WIN * evas_key_modifier_is_set(ev->modifiers, "Hyper"));
|
|
||||||
event->modifiers |= (E_BINDING_MODIFIER_ALTGR * evas_key_modifier_is_set(ev->modifiers, "AltGr"));
|
|
||||||
|
|
||||||
event->hold = (ev->event_flags & EVAS_EVENT_FLAG_ON_HOLD);
|
event->hold = (ev->event_flags & EVAS_EVENT_FLAG_ON_HOLD);
|
||||||
event->scroll = (ev->event_flags & EVAS_EVENT_FLAG_ON_SCROLL);
|
event->scroll = (ev->event_flags & EVAS_EVENT_FLAG_ON_SCROLL);
|
||||||
|
@ -873,7 +870,7 @@ e_bindings_edge_in_event_handle(E_Binding_Context ctxt, E_Object *obj, E_Event_Z
|
||||||
Eina_List *l;
|
Eina_List *l;
|
||||||
|
|
||||||
current = e_desk_at_xy_get(ev->zone, ev->zone->desk_x_current, ev->zone->desk_y_current);
|
current = e_desk_at_xy_get(ev->zone, ev->zone->desk_x_current, ev->zone->desk_y_current);
|
||||||
if (current->fullscreen_borders && (!e_config->fullscreen_flip)) return NULL;
|
if (current->fullscreen_clients && (!e_config->fullscreen_flip)) return NULL;
|
||||||
|
|
||||||
if (ev->modifiers & ECORE_EVENT_MODIFIER_SHIFT) mod |= E_BINDING_MODIFIER_SHIFT;
|
if (ev->modifiers & ECORE_EVENT_MODIFIER_SHIFT) mod |= E_BINDING_MODIFIER_SHIFT;
|
||||||
if (ev->modifiers & ECORE_EVENT_MODIFIER_CTRL) mod |= E_BINDING_MODIFIER_CTRL;
|
if (ev->modifiers & ECORE_EVENT_MODIFIER_CTRL) mod |= E_BINDING_MODIFIER_CTRL;
|
||||||
|
@ -965,7 +962,7 @@ e_bindings_edge_down_event_handle(E_Binding_Context ctxt, E_Object *obj, E_Event
|
||||||
Eina_List *l;
|
Eina_List *l;
|
||||||
|
|
||||||
current = e_desk_at_xy_get(ev->zone, ev->zone->desk_x_current, ev->zone->desk_y_current);
|
current = e_desk_at_xy_get(ev->zone, ev->zone->desk_x_current, ev->zone->desk_y_current);
|
||||||
if (current->fullscreen_borders && (!e_config->fullscreen_flip)) return NULL;
|
if (current->fullscreen_clients && (!e_config->fullscreen_flip)) return NULL;
|
||||||
|
|
||||||
if (ev->modifiers & ECORE_EVENT_MODIFIER_SHIFT) mod |= E_BINDING_MODIFIER_SHIFT;
|
if (ev->modifiers & ECORE_EVENT_MODIFIER_SHIFT) mod |= E_BINDING_MODIFIER_SHIFT;
|
||||||
if (ev->modifiers & ECORE_EVENT_MODIFIER_CTRL) mod |= E_BINDING_MODIFIER_CTRL;
|
if (ev->modifiers & ECORE_EVENT_MODIFIER_CTRL) mod |= E_BINDING_MODIFIER_CTRL;
|
||||||
|
@ -1364,29 +1361,6 @@ e_bindings_acpi_event_handle(E_Binding_Context ctxt, E_Object *obj, E_Event_Acpi
|
||||||
return act;
|
return act;
|
||||||
}
|
}
|
||||||
|
|
||||||
EAPI void
|
|
||||||
e_bindings_mapping_change_enable(Eina_Bool enable)
|
|
||||||
{
|
|
||||||
if (enable)
|
|
||||||
_e_bindings_mapping_change_enabled++;
|
|
||||||
else
|
|
||||||
_e_bindings_mapping_change_enabled--;
|
|
||||||
if (_e_bindings_mapping_change_enabled < 0)
|
|
||||||
_e_bindings_mapping_change_enabled = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* local subsystem functions */
|
|
||||||
static Eina_Bool
|
|
||||||
_e_bindings_mapping_change_event_cb(void *data __UNUSED__, int type __UNUSED__, void *event __UNUSED__)
|
|
||||||
{
|
|
||||||
if (!_e_bindings_mapping_change_enabled) return ECORE_CALLBACK_RENEW;
|
|
||||||
e_managers_keys_ungrab();
|
|
||||||
e_border_button_bindings_ungrab_all();
|
|
||||||
e_border_button_bindings_grab_all();
|
|
||||||
e_managers_keys_grab();
|
|
||||||
return ECORE_CALLBACK_PASS_ON;
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
_e_bindings_mouse_free(E_Binding_Mouse *binding)
|
_e_bindings_mouse_free(E_Binding_Mouse *binding)
|
||||||
{
|
{
|
||||||
|
@ -1502,14 +1476,13 @@ _e_bindings_edge_cb_timer(void *data)
|
||||||
ev = ed->ev;
|
ev = ed->ev;
|
||||||
|
|
||||||
E_FREE(ed);
|
E_FREE(ed);
|
||||||
|
binding->timer = NULL;
|
||||||
|
|
||||||
if (act->func.go_edge)
|
if (act->func.go_edge)
|
||||||
act->func.go_edge(obj, binding->params, ev);
|
act->func.go_edge(obj, binding->params, ev);
|
||||||
else if (act->func.go)
|
else if (act->func.go)
|
||||||
act->func.go(obj, binding->params);
|
act->func.go(obj, binding->params);
|
||||||
|
|
||||||
binding->timer = NULL;
|
|
||||||
|
|
||||||
/* Duplicate event */
|
/* Duplicate event */
|
||||||
E_FREE(ev);
|
E_FREE(ev);
|
||||||
|
|
||||||
|
|
|
@ -6,7 +6,7 @@ typedef enum _E_Binding_Context
|
||||||
E_BINDING_CONTEXT_UNKNOWN,
|
E_BINDING_CONTEXT_UNKNOWN,
|
||||||
E_BINDING_CONTEXT_WINDOW,
|
E_BINDING_CONTEXT_WINDOW,
|
||||||
E_BINDING_CONTEXT_ZONE,
|
E_BINDING_CONTEXT_ZONE,
|
||||||
E_BINDING_CONTEXT_CONTAINER,
|
E_BINDING_CONTEXT_COMPOSITOR,
|
||||||
E_BINDING_CONTEXT_MANAGER,
|
E_BINDING_CONTEXT_MANAGER,
|
||||||
E_BINDING_CONTEXT_MENU,
|
E_BINDING_CONTEXT_MENU,
|
||||||
E_BINDING_CONTEXT_WINLIST,
|
E_BINDING_CONTEXT_WINLIST,
|
||||||
|
@ -193,8 +193,8 @@ EAPI void e_bindings_acpi_add(E_Binding_Context ctxt, int type, int status, cons
|
||||||
EAPI void e_bindings_acpi_del(E_Binding_Context ctxt, int type, int status, const char *action, const char *params);
|
EAPI void e_bindings_acpi_del(E_Binding_Context ctxt, int type, int status, const char *action, const char *params);
|
||||||
EAPI E_Action *e_bindings_acpi_find(E_Binding_Context ctxt, E_Event_Acpi *ev, E_Binding_Acpi **bind_ret);
|
EAPI E_Action *e_bindings_acpi_find(E_Binding_Context ctxt, E_Event_Acpi *ev, E_Binding_Acpi **bind_ret);
|
||||||
EAPI E_Action *e_bindings_acpi_event_handle(E_Binding_Context ctxt, E_Object *obj, E_Event_Acpi *ev);
|
EAPI E_Action *e_bindings_acpi_event_handle(E_Binding_Context ctxt, E_Object *obj, E_Event_Acpi *ev);
|
||||||
EAPI void e_bindings_mapping_change_enable(Eina_Bool enable);
|
|
||||||
|
|
||||||
|
EAPI int e_bindings_evas_modifiers_convert(Evas_Modifier *modifiers);
|
||||||
EAPI int e_bindings_modifiers_to_ecore_convert(E_Binding_Modifier modifiers);
|
EAPI int e_bindings_modifiers_to_ecore_convert(E_Binding_Modifier modifiers);
|
||||||
EAPI void e_bindings_evas_event_mouse_button_convert(const Evas_Event_Mouse_Down *ev, E_Binding_Event_Mouse_Button *event);
|
EAPI void e_bindings_evas_event_mouse_button_convert(const Evas_Event_Mouse_Down *ev, E_Binding_Event_Mouse_Button *event);
|
||||||
EAPI void e_bindings_evas_event_mouse_wheel_convert(const Evas_Event_Mouse_Wheel *ev, E_Binding_Event_Wheel *event);
|
EAPI void e_bindings_evas_event_mouse_wheel_convert(const Evas_Event_Mouse_Wheel *ev, E_Binding_Event_Wheel *event);
|
||||||
|
|
10232
src/bin/e_border.c
10232
src/bin/e_border.c
File diff suppressed because it is too large
Load Diff
|
@ -1,885 +0,0 @@
|
||||||
#ifdef E_TYPEDEFS
|
|
||||||
|
|
||||||
typedef enum _E_Screen_Limits
|
|
||||||
{
|
|
||||||
E_SCREEN_LIMITS_PARTLY = 0,
|
|
||||||
E_SCREEN_LIMITS_COMPLETELY = 1,
|
|
||||||
E_SCREEN_LIMITS_WITHIN = 2
|
|
||||||
} E_Screen_Limits;
|
|
||||||
|
|
||||||
typedef enum _E_Icon_Preference
|
|
||||||
{
|
|
||||||
E_ICON_PREF_E_DEFAULT,
|
|
||||||
E_ICON_PREF_NETWM,
|
|
||||||
E_ICON_PREF_USER
|
|
||||||
} E_Icon_Preference;
|
|
||||||
|
|
||||||
typedef enum _E_Direction
|
|
||||||
{
|
|
||||||
E_DIRECTION_UP,
|
|
||||||
E_DIRECTION_DOWN,
|
|
||||||
E_DIRECTION_LEFT,
|
|
||||||
E_DIRECTION_RIGHT
|
|
||||||
} E_Direction;
|
|
||||||
|
|
||||||
typedef enum _E_Transition
|
|
||||||
{
|
|
||||||
E_TRANSITION_LINEAR = 0,
|
|
||||||
E_TRANSITION_SINUSOIDAL = 1,
|
|
||||||
E_TRANSITION_ACCELERATE = 2,
|
|
||||||
E_TRANSITION_DECELERATE = 3,
|
|
||||||
E_TRANSITION_ACCELERATE_LOTS = 4,
|
|
||||||
E_TRANSITION_DECELERATE_LOTS = 5,
|
|
||||||
E_TRANSITION_SINUSOIDAL_LOTS = 6,
|
|
||||||
E_TRANSITION_BOUNCE = 7,
|
|
||||||
E_TRANSITION_BOUNCE_LOTS = 8
|
|
||||||
} E_Transition;
|
|
||||||
|
|
||||||
typedef enum _E_Stacking
|
|
||||||
{
|
|
||||||
E_STACKING_NONE,
|
|
||||||
E_STACKING_ABOVE,
|
|
||||||
E_STACKING_BELOW
|
|
||||||
} E_Stacking;
|
|
||||||
|
|
||||||
typedef enum _E_Focus_Policy
|
|
||||||
{
|
|
||||||
E_FOCUS_CLICK,
|
|
||||||
E_FOCUS_MOUSE,
|
|
||||||
E_FOCUS_SLOPPY,
|
|
||||||
E_FOCUS_LAST
|
|
||||||
} E_Focus_Policy;
|
|
||||||
|
|
||||||
typedef enum _E_Urgency_Policy
|
|
||||||
{
|
|
||||||
E_ACTIVEHINT_POLICY_IGNORE,
|
|
||||||
E_ACTIVEHINT_POLICY_ANIMATE,
|
|
||||||
E_ACTIVEHINT_POLICY_ACTIVATE
|
|
||||||
} E_Urgency_Policy;
|
|
||||||
|
|
||||||
typedef enum _E_Focus_Setting
|
|
||||||
{
|
|
||||||
E_FOCUS_NONE,
|
|
||||||
E_FOCUS_NEW_WINDOW,
|
|
||||||
E_FOCUS_NEW_DIALOG,
|
|
||||||
E_FOCUS_NEW_DIALOG_IF_OWNER_FOCUSED
|
|
||||||
} E_Focus_Setting;
|
|
||||||
|
|
||||||
typedef enum _E_Maximize
|
|
||||||
{
|
|
||||||
E_MAXIMIZE_NONE = 0x00000000,
|
|
||||||
E_MAXIMIZE_FULLSCREEN = 0x00000001,
|
|
||||||
E_MAXIMIZE_SMART = 0x00000002,
|
|
||||||
E_MAXIMIZE_EXPAND = 0x00000003,
|
|
||||||
E_MAXIMIZE_FILL = 0x00000004,
|
|
||||||
E_MAXIMIZE_TYPE = 0x0000000f,
|
|
||||||
E_MAXIMIZE_VERTICAL = 0x00000010,
|
|
||||||
E_MAXIMIZE_HORIZONTAL = 0x00000020,
|
|
||||||
E_MAXIMIZE_BOTH = 0x00000030,
|
|
||||||
E_MAXIMIZE_LEFT = 0x00000070,
|
|
||||||
E_MAXIMIZE_RIGHT = 0x000000b0,
|
|
||||||
E_MAXIMIZE_DIRECTION = 0x000000f0
|
|
||||||
} E_Maximize;
|
|
||||||
|
|
||||||
typedef enum _E_Fullscreen
|
|
||||||
{
|
|
||||||
/* Resize window */
|
|
||||||
E_FULLSCREEN_RESIZE,
|
|
||||||
/* Change screen resoultion and resize window */
|
|
||||||
E_FULLSCREEN_ZOOM
|
|
||||||
} E_Fullscreen;
|
|
||||||
|
|
||||||
typedef enum _E_Window_Placement
|
|
||||||
{
|
|
||||||
E_WINDOW_PLACEMENT_SMART,
|
|
||||||
E_WINDOW_PLACEMENT_ANTIGADGET,
|
|
||||||
E_WINDOW_PLACEMENT_CURSOR,
|
|
||||||
E_WINDOW_PLACEMENT_MANUAL
|
|
||||||
} E_Window_Placement;
|
|
||||||
|
|
||||||
typedef enum _E_Border_Hook_Point
|
|
||||||
{
|
|
||||||
E_BORDER_HOOK_EVAL_PRE_FETCH,
|
|
||||||
E_BORDER_HOOK_EVAL_PRE_POST_FETCH,
|
|
||||||
E_BORDER_HOOK_EVAL_POST_FETCH,
|
|
||||||
E_BORDER_HOOK_EVAL_PRE_BORDER_ASSIGN,
|
|
||||||
E_BORDER_HOOK_EVAL_POST_BORDER_ASSIGN,
|
|
||||||
E_BORDER_HOOK_EVAL_PRE_NEW_BORDER,
|
|
||||||
E_BORDER_HOOK_EVAL_POST_NEW_BORDER,
|
|
||||||
E_BORDER_HOOK_EVAL_END,
|
|
||||||
E_BORDER_HOOK_CONTAINER_LAYOUT,
|
|
||||||
E_BORDER_HOOK_NEW_BORDER,
|
|
||||||
E_BORDER_HOOK_SET_DESK,
|
|
||||||
E_BORDER_HOOK_MOVE_BEGIN,
|
|
||||||
E_BORDER_HOOK_MOVE_UPDATE,
|
|
||||||
E_BORDER_HOOK_MOVE_END,
|
|
||||||
E_BORDER_HOOK_RESIZE_BEGIN,
|
|
||||||
E_BORDER_HOOK_RESIZE_UPDATE,
|
|
||||||
E_BORDER_HOOK_RESIZE_END
|
|
||||||
} E_Border_Hook_Point;
|
|
||||||
|
|
||||||
typedef struct _E_Border E_Border;
|
|
||||||
typedef struct _E_Event_Border_Simple E_Event_Border_Simple;
|
|
||||||
typedef struct _E_Border_Pending_Move_Resize E_Border_Pending_Move_Resize;
|
|
||||||
typedef struct _E_Border_Hook E_Border_Hook;
|
|
||||||
typedef struct _E_Event_Border_Simple E_Event_Border_Resize;
|
|
||||||
typedef struct _E_Event_Border_Simple E_Event_Border_Move;
|
|
||||||
typedef struct _E_Event_Border_Simple E_Event_Border_Add;
|
|
||||||
typedef struct _E_Event_Border_Simple E_Event_Border_Remove;
|
|
||||||
typedef struct _E_Event_Border_Simple E_Event_Border_Show;
|
|
||||||
typedef struct _E_Event_Border_Hide E_Event_Border_Hide;
|
|
||||||
typedef struct _E_Event_Border_Simple E_Event_Border_Iconify;
|
|
||||||
typedef struct _E_Event_Border_Simple E_Event_Border_Uniconify;
|
|
||||||
typedef struct _E_Event_Border_Simple E_Event_Border_Stick;
|
|
||||||
typedef struct _E_Event_Border_Simple E_Event_Border_Unstick;
|
|
||||||
typedef struct _E_Event_Border_Zone_Set E_Event_Border_Zone_Set;
|
|
||||||
typedef struct _E_Event_Border_Desk_Set E_Event_Border_Desk_Set;
|
|
||||||
typedef struct _E_Event_Border_Stack E_Event_Border_Stack;
|
|
||||||
typedef struct _E_Event_Border_Simple E_Event_Border_Icon_Change;
|
|
||||||
typedef struct _E_Event_Border_Simple E_Event_Border_Title_Change;
|
|
||||||
typedef struct _E_Event_Border_Simple E_Event_Border_Urgent_Change;
|
|
||||||
typedef struct _E_Event_Border_Simple E_Event_Border_Focus_In;
|
|
||||||
typedef struct _E_Event_Border_Simple E_Event_Border_Focus_Out;
|
|
||||||
typedef struct _E_Event_Border_Simple E_Event_Border_Property;
|
|
||||||
typedef struct _E_Event_Border_Simple E_Event_Border_Fullscreen;
|
|
||||||
typedef struct _E_Event_Border_Simple E_Event_Border_Unfullscreen;
|
|
||||||
typedef void (*E_Border_Move_Intercept_Cb)(E_Border *, int x, int y);
|
|
||||||
#else
|
|
||||||
#ifndef E_BORDER_H
|
|
||||||
#define E_BORDER_H
|
|
||||||
|
|
||||||
#define E_BORDER_TYPE (int)0xE0b01002
|
|
||||||
|
|
||||||
struct _E_Border
|
|
||||||
{
|
|
||||||
E_Object e_obj_inherit;
|
|
||||||
|
|
||||||
struct
|
|
||||||
{
|
|
||||||
struct
|
|
||||||
{
|
|
||||||
int x, y, w, h;
|
|
||||||
int mx, my;
|
|
||||||
} current, last_down[3], last_up[3];
|
|
||||||
} mouse;
|
|
||||||
|
|
||||||
struct
|
|
||||||
{
|
|
||||||
struct
|
|
||||||
{
|
|
||||||
int x, y, w, h;
|
|
||||||
int mx, my;
|
|
||||||
int button;
|
|
||||||
} down;
|
|
||||||
} moveinfo;
|
|
||||||
|
|
||||||
int x, y, w, h;
|
|
||||||
int ref;
|
|
||||||
E_Zone *zone;
|
|
||||||
E_Desk *desk;
|
|
||||||
|
|
||||||
struct
|
|
||||||
{
|
|
||||||
int l, r, t, b;
|
|
||||||
Eina_Bool calc : 1; // inset has been calculated
|
|
||||||
} client_inset;
|
|
||||||
|
|
||||||
E_Comp_Win *cw;
|
|
||||||
Ecore_X_Window win;
|
|
||||||
Evas_Object *bg_object;
|
|
||||||
Evas_Object *icon_object;
|
|
||||||
Evas_Object *input_object;
|
|
||||||
Eina_Stringshare *internal_icon;
|
|
||||||
Eina_Stringshare *internal_icon_key;
|
|
||||||
|
|
||||||
Eina_Bool callbacks_set : 1;
|
|
||||||
|
|
||||||
struct
|
|
||||||
{
|
|
||||||
Ecore_X_Window lock_win;
|
|
||||||
Ecore_X_Window win;
|
|
||||||
|
|
||||||
int w, h;
|
|
||||||
|
|
||||||
struct
|
|
||||||
{
|
|
||||||
Eina_Bool mapping_change : 1;
|
|
||||||
Eina_Bool iconic_shading : 1;
|
|
||||||
} hacks;
|
|
||||||
|
|
||||||
struct
|
|
||||||
{
|
|
||||||
unsigned char changed : 1;
|
|
||||||
unsigned char user_selected : 1;
|
|
||||||
Eina_Stringshare *name;
|
|
||||||
} border;
|
|
||||||
|
|
||||||
unsigned char shaped : 1;
|
|
||||||
unsigned char argb : 1;
|
|
||||||
|
|
||||||
/* ICCCM */
|
|
||||||
struct
|
|
||||||
{
|
|
||||||
Eina_Stringshare *title;
|
|
||||||
Eina_Stringshare *name;
|
|
||||||
Eina_Stringshare *class;
|
|
||||||
Eina_Stringshare *icon_name;
|
|
||||||
Eina_Stringshare *machine;
|
|
||||||
int min_w, min_h;
|
|
||||||
int max_w, max_h;
|
|
||||||
int base_w, base_h;
|
|
||||||
int step_w, step_h;
|
|
||||||
int start_x, start_y;
|
|
||||||
double min_aspect, max_aspect;
|
|
||||||
Ecore_X_Window_State_Hint initial_state;
|
|
||||||
Ecore_X_Window_State_Hint state;
|
|
||||||
Ecore_X_Pixmap icon_pixmap;
|
|
||||||
Ecore_X_Pixmap icon_mask;
|
|
||||||
Ecore_X_Window icon_window;
|
|
||||||
Ecore_X_Window window_group;
|
|
||||||
Ecore_X_Window transient_for;
|
|
||||||
Ecore_X_Window client_leader;
|
|
||||||
Ecore_X_Gravity gravity;
|
|
||||||
Eina_Stringshare *window_role;
|
|
||||||
unsigned char take_focus : 1;
|
|
||||||
unsigned char accepts_focus : 1;
|
|
||||||
unsigned char urgent : 1;
|
|
||||||
unsigned char delete_request : 1;
|
|
||||||
unsigned char request_pos : 1;
|
|
||||||
struct
|
|
||||||
{
|
|
||||||
int argc;
|
|
||||||
char **argv;
|
|
||||||
} command;
|
|
||||||
struct
|
|
||||||
{
|
|
||||||
unsigned char title : 1;
|
|
||||||
unsigned char name_class : 1;
|
|
||||||
unsigned char icon_name : 1;
|
|
||||||
unsigned char machine : 1;
|
|
||||||
unsigned char hints : 1;
|
|
||||||
unsigned char size_pos_hints : 1;
|
|
||||||
unsigned char protocol : 1;
|
|
||||||
unsigned char transient_for : 1;
|
|
||||||
unsigned char client_leader : 1;
|
|
||||||
unsigned char window_role : 1;
|
|
||||||
unsigned char state : 1;
|
|
||||||
unsigned char command : 1;
|
|
||||||
} fetch;
|
|
||||||
} icccm;
|
|
||||||
|
|
||||||
/* MWM */
|
|
||||||
struct
|
|
||||||
{
|
|
||||||
Ecore_X_MWM_Hint_Func func;
|
|
||||||
Ecore_X_MWM_Hint_Decor decor;
|
|
||||||
Ecore_X_MWM_Hint_Input input;
|
|
||||||
unsigned char exists : 1;
|
|
||||||
unsigned char borderless : 1;
|
|
||||||
struct
|
|
||||||
{
|
|
||||||
unsigned char hints : 1;
|
|
||||||
} fetch;
|
|
||||||
} mwm;
|
|
||||||
|
|
||||||
/* NetWM */
|
|
||||||
struct
|
|
||||||
{
|
|
||||||
pid_t pid;
|
|
||||||
unsigned int desktop;
|
|
||||||
Eina_Stringshare *name;
|
|
||||||
Eina_Stringshare *icon_name;
|
|
||||||
Ecore_X_Icon *icons;
|
|
||||||
int num_icons;
|
|
||||||
unsigned int user_time;
|
|
||||||
unsigned char opacity;
|
|
||||||
Eina_Bool opacity_changed : 1; // prevent fetching opacity next prop change
|
|
||||||
struct
|
|
||||||
{
|
|
||||||
int left;
|
|
||||||
int right;
|
|
||||||
int top;
|
|
||||||
int bottom;
|
|
||||||
int left_start_y;
|
|
||||||
int left_end_y;
|
|
||||||
int right_start_y;
|
|
||||||
int right_end_y;
|
|
||||||
int top_start_x;
|
|
||||||
int top_end_x;
|
|
||||||
int bottom_start_x;
|
|
||||||
int bottom_end_x;
|
|
||||||
} strut;
|
|
||||||
unsigned char ping : 1;
|
|
||||||
struct
|
|
||||||
{
|
|
||||||
unsigned char request : 1;
|
|
||||||
unsigned int wait;
|
|
||||||
Ecore_X_Sync_Alarm alarm;
|
|
||||||
Ecore_X_Sync_Counter counter;
|
|
||||||
unsigned int serial;
|
|
||||||
double send_time;
|
|
||||||
} sync;
|
|
||||||
|
|
||||||
/* NetWM Window state */
|
|
||||||
struct
|
|
||||||
{
|
|
||||||
unsigned char modal : 1;
|
|
||||||
unsigned char sticky : 1;
|
|
||||||
unsigned char maximized_v : 1;
|
|
||||||
unsigned char maximized_h : 1;
|
|
||||||
unsigned char shaded : 1;
|
|
||||||
unsigned char skip_taskbar : 1;
|
|
||||||
unsigned char skip_pager : 1;
|
|
||||||
unsigned char hidden : 1;
|
|
||||||
unsigned char fullscreen : 1;
|
|
||||||
E_Stacking stacking;
|
|
||||||
} state;
|
|
||||||
|
|
||||||
/* NetWM Window allowed actions */
|
|
||||||
struct
|
|
||||||
{
|
|
||||||
unsigned char move : 1;
|
|
||||||
unsigned char resize : 1;
|
|
||||||
unsigned char minimize : 1;
|
|
||||||
unsigned char shade : 1;
|
|
||||||
unsigned char stick : 1;
|
|
||||||
unsigned char maximized_h : 1;
|
|
||||||
unsigned char maximized_v : 1;
|
|
||||||
unsigned char fullscreen : 1;
|
|
||||||
unsigned char change_desktop : 1;
|
|
||||||
unsigned char close : 1;
|
|
||||||
} action;
|
|
||||||
|
|
||||||
Ecore_X_Window_Type type;
|
|
||||||
Ecore_X_Window_Type *extra_types;
|
|
||||||
int extra_types_num;
|
|
||||||
int startup_id;
|
|
||||||
|
|
||||||
struct
|
|
||||||
{
|
|
||||||
unsigned char name : 1;
|
|
||||||
unsigned char icon_name : 1;
|
|
||||||
unsigned char icon : 1;
|
|
||||||
unsigned char user_time : 1;
|
|
||||||
unsigned char strut : 1;
|
|
||||||
unsigned char type : 1;
|
|
||||||
unsigned char state : 1;
|
|
||||||
unsigned char opacity : 1;
|
|
||||||
/* No, fetch on new_client, shouldn't be changed after map.
|
|
||||||
unsigned char pid : 1;
|
|
||||||
*/
|
|
||||||
/* No, ignore this
|
|
||||||
unsigned char desktop : 1;
|
|
||||||
*/
|
|
||||||
} fetch;
|
|
||||||
|
|
||||||
struct
|
|
||||||
{
|
|
||||||
unsigned char state : 1;
|
|
||||||
} update;
|
|
||||||
} netwm;
|
|
||||||
|
|
||||||
/* Extra e stuff */
|
|
||||||
struct
|
|
||||||
{
|
|
||||||
struct
|
|
||||||
{
|
|
||||||
struct
|
|
||||||
{
|
|
||||||
int x, y;
|
|
||||||
|
|
||||||
unsigned char updated : 1;
|
|
||||||
} video_position;
|
|
||||||
Ecore_X_Window video_parent;
|
|
||||||
E_Border *video_parent_border;
|
|
||||||
Eina_List *video_child;
|
|
||||||
#if (ECORE_VERSION_MAJOR > 1) || (ECORE_VERSION_MINOR >= 8)
|
|
||||||
struct
|
|
||||||
{
|
|
||||||
Eina_Stringshare *name;
|
|
||||||
Eina_Stringshare **available_list;
|
|
||||||
int num;
|
|
||||||
unsigned char wait_for_done : 1;
|
|
||||||
unsigned char use : 1;
|
|
||||||
} profile;
|
|
||||||
#endif
|
|
||||||
unsigned char centered : 1;
|
|
||||||
unsigned char video : 1;
|
|
||||||
} state;
|
|
||||||
|
|
||||||
struct
|
|
||||||
{
|
|
||||||
unsigned char state : 1;
|
|
||||||
unsigned char video_parent : 1;
|
|
||||||
unsigned char video_position : 1;
|
|
||||||
#if (ECORE_VERSION_MAJOR > 1) || (ECORE_VERSION_MINOR >= 8)
|
|
||||||
unsigned char profile : 1;
|
|
||||||
#endif
|
|
||||||
} fetch;
|
|
||||||
} e;
|
|
||||||
|
|
||||||
struct
|
|
||||||
{
|
|
||||||
struct
|
|
||||||
{
|
|
||||||
unsigned char soft_menu : 1;
|
|
||||||
unsigned char soft_menus : 1;
|
|
||||||
} fetch;
|
|
||||||
|
|
||||||
unsigned char soft_menu : 1;
|
|
||||||
unsigned char soft_menus : 1;
|
|
||||||
} qtopia;
|
|
||||||
|
|
||||||
struct
|
|
||||||
{
|
|
||||||
struct
|
|
||||||
{
|
|
||||||
unsigned char state : 1;
|
|
||||||
unsigned char vkbd : 1;
|
|
||||||
} fetch;
|
|
||||||
Ecore_X_Virtual_Keyboard_State state;
|
|
||||||
unsigned char have_property : 1;
|
|
||||||
unsigned char vkbd : 1;
|
|
||||||
} vkbd;
|
|
||||||
|
|
||||||
struct
|
|
||||||
{
|
|
||||||
struct
|
|
||||||
{
|
|
||||||
struct
|
|
||||||
{
|
|
||||||
unsigned char conformant : 1;
|
|
||||||
} fetch;
|
|
||||||
unsigned char conformant : 1;
|
|
||||||
} conformant;
|
|
||||||
struct
|
|
||||||
{
|
|
||||||
struct
|
|
||||||
{
|
|
||||||
unsigned char state : 1;
|
|
||||||
struct
|
|
||||||
{
|
|
||||||
unsigned int major : 1;
|
|
||||||
unsigned int minor : 1;
|
|
||||||
} priority;
|
|
||||||
unsigned char quickpanel : 1;
|
|
||||||
unsigned char zone : 1;
|
|
||||||
} fetch;
|
|
||||||
Ecore_X_Illume_Quickpanel_State state;
|
|
||||||
struct
|
|
||||||
{
|
|
||||||
unsigned int major : 1;
|
|
||||||
unsigned int minor : 1;
|
|
||||||
} priority;
|
|
||||||
unsigned char quickpanel : 1;
|
|
||||||
int zone;
|
|
||||||
} quickpanel;
|
|
||||||
struct
|
|
||||||
{
|
|
||||||
struct
|
|
||||||
{
|
|
||||||
unsigned char drag : 1;
|
|
||||||
unsigned char locked : 1;
|
|
||||||
} fetch;
|
|
||||||
unsigned char drag : 1;
|
|
||||||
unsigned char locked : 1;
|
|
||||||
} drag;
|
|
||||||
struct
|
|
||||||
{
|
|
||||||
struct
|
|
||||||
{
|
|
||||||
unsigned char state : 1;
|
|
||||||
} fetch;
|
|
||||||
Ecore_X_Illume_Window_State state;
|
|
||||||
} win_state;
|
|
||||||
} illume;
|
|
||||||
|
|
||||||
Ecore_X_Window_Attributes initial_attributes;
|
|
||||||
} client;
|
|
||||||
|
|
||||||
E_Container_Shape *shape;
|
|
||||||
|
|
||||||
unsigned int visible : 1;
|
|
||||||
Eina_Bool hidden : 1; // set when window has been hidden by api and should not be shown
|
|
||||||
unsigned int await_hide_event;
|
|
||||||
unsigned int moving : 1;
|
|
||||||
unsigned int focused : 1;
|
|
||||||
unsigned int new_client : 1;
|
|
||||||
unsigned int re_manage : 1;
|
|
||||||
unsigned int placed : 1;
|
|
||||||
unsigned int shading : 1;
|
|
||||||
unsigned int shaded : 1;
|
|
||||||
unsigned int iconic : 1;
|
|
||||||
unsigned int deskshow : 1;
|
|
||||||
unsigned int sticky : 1;
|
|
||||||
unsigned int shaped_input : 1;
|
|
||||||
unsigned int need_shape_merge : 1;
|
|
||||||
unsigned int need_shape_export : 1;
|
|
||||||
unsigned int fullscreen : 1;
|
|
||||||
unsigned int need_fullscreen : 1;
|
|
||||||
unsigned int already_unparented : 1;
|
|
||||||
unsigned int need_reparent : 1;
|
|
||||||
unsigned int button_grabbed : 1;
|
|
||||||
unsigned int delete_requested : 1;
|
|
||||||
unsigned int ping_ok : 1;
|
|
||||||
unsigned int hung : 1;
|
|
||||||
unsigned int take_focus : 1;
|
|
||||||
unsigned int want_focus : 1;
|
|
||||||
unsigned int user_skip_winlist : 1;
|
|
||||||
unsigned int need_maximize : 1;
|
|
||||||
E_Maximize maximized;
|
|
||||||
E_Fullscreen fullscreen_policy;
|
|
||||||
unsigned int borderless : 1;
|
|
||||||
unsigned char offer_resistance : 1;
|
|
||||||
Eina_Stringshare *bordername;
|
|
||||||
|
|
||||||
unsigned int lock_user_location : 1; /*DONE*/
|
|
||||||
unsigned int lock_client_location : 1; /*DONE*/
|
|
||||||
unsigned int lock_user_size : 1; /*DONE*/
|
|
||||||
unsigned int lock_client_size : 1; /*DONE*/
|
|
||||||
unsigned int lock_user_stacking : 1; /*DONE*/
|
|
||||||
unsigned int lock_client_stacking : 1; /*DONE*/
|
|
||||||
unsigned int lock_user_iconify : 1; /*DONE*/
|
|
||||||
unsigned int lock_client_iconify : 1; /*DONE*/
|
|
||||||
unsigned int lock_user_desk : 1;
|
|
||||||
unsigned int lock_client_desk : 1;
|
|
||||||
unsigned int lock_user_sticky : 1; /*DONE*/
|
|
||||||
unsigned int lock_client_sticky : 1; /*DONE*/
|
|
||||||
unsigned int lock_user_shade : 1; /*DONE*/
|
|
||||||
unsigned int lock_client_shade : 1; /*DONE*/
|
|
||||||
unsigned int lock_user_maximize : 1; /*DONE*/
|
|
||||||
unsigned int lock_client_maximize : 1; /*DONE*/
|
|
||||||
unsigned int lock_user_fullscreen : 1; /*DONE*/
|
|
||||||
unsigned int lock_client_fullscreen : 1; /*DONE*/
|
|
||||||
unsigned int lock_border : 1; /*DONE*/
|
|
||||||
unsigned int lock_close : 1; /*DONE*/
|
|
||||||
unsigned int lock_focus_in : 1; /*DONE*/
|
|
||||||
unsigned int lock_focus_out : 1; /*DONE*/
|
|
||||||
unsigned int lock_life : 1; /*DONE*/
|
|
||||||
|
|
||||||
unsigned int internal : 1;
|
|
||||||
unsigned int internal_no_remember : 1;
|
|
||||||
unsigned int internal_no_reopen : 1;
|
|
||||||
unsigned int stolen : 1;
|
|
||||||
Eina_Bool theme_shadow : 1;
|
|
||||||
Eina_Bool destroyed : 1;
|
|
||||||
|
|
||||||
Ecore_Evas *internal_ecore_evas;
|
|
||||||
|
|
||||||
double ping;
|
|
||||||
|
|
||||||
unsigned char changed : 1;
|
|
||||||
|
|
||||||
unsigned char icon_preference;
|
|
||||||
unsigned char ignore_first_unmap;
|
|
||||||
unsigned char resize_mode;
|
|
||||||
|
|
||||||
struct
|
|
||||||
{
|
|
||||||
int x, y, w, h;
|
|
||||||
E_Layer layer;
|
|
||||||
int zone;
|
|
||||||
E_Maximize maximized;
|
|
||||||
} saved;
|
|
||||||
|
|
||||||
struct
|
|
||||||
{
|
|
||||||
unsigned char valid : 1;
|
|
||||||
int x, y, w, h;
|
|
||||||
struct
|
|
||||||
{
|
|
||||||
int x, y, w, h;
|
|
||||||
} saved;
|
|
||||||
} pre_res_change;
|
|
||||||
|
|
||||||
struct
|
|
||||||
{
|
|
||||||
double start;
|
|
||||||
double val;
|
|
||||||
int x, y;
|
|
||||||
E_Direction dir;
|
|
||||||
Ecore_Animator *anim;
|
|
||||||
} shade;
|
|
||||||
|
|
||||||
struct
|
|
||||||
{
|
|
||||||
int x, y;
|
|
||||||
int modified;
|
|
||||||
} shelf_fix;
|
|
||||||
|
|
||||||
Eina_List *stick_desks;
|
|
||||||
E_Menu *border_menu;
|
|
||||||
E_Config_Dialog *border_locks_dialog;
|
|
||||||
E_Config_Dialog *border_remember_dialog;
|
|
||||||
E_Config_Dialog *border_border_dialog;
|
|
||||||
E_Dialog *border_prop_dialog;
|
|
||||||
Eina_List *pending_move_resize;
|
|
||||||
|
|
||||||
struct
|
|
||||||
{
|
|
||||||
unsigned char visible : 1;
|
|
||||||
unsigned char pos : 1;
|
|
||||||
unsigned char size : 1;
|
|
||||||
unsigned char stack : 1;
|
|
||||||
unsigned char prop : 1;
|
|
||||||
unsigned char border : 1;
|
|
||||||
unsigned char reset_gravity : 1;
|
|
||||||
unsigned char shading : 1;
|
|
||||||
unsigned char shaded : 1;
|
|
||||||
unsigned char shape : 1;
|
|
||||||
unsigned char shape_input : 1;
|
|
||||||
unsigned char icon : 1;
|
|
||||||
} changes;
|
|
||||||
|
|
||||||
struct
|
|
||||||
{
|
|
||||||
unsigned char start : 1;
|
|
||||||
int x, y;
|
|
||||||
} drag;
|
|
||||||
|
|
||||||
E_Layer layer;
|
|
||||||
E_Action *cur_mouse_action;
|
|
||||||
Ecore_Timer *raise_timer;
|
|
||||||
Ecore_Poller *ping_poller;
|
|
||||||
Ecore_Timer *kill_timer;
|
|
||||||
E_Border_Move_Intercept_Cb move_intercept_cb;
|
|
||||||
E_Remember *remember;
|
|
||||||
|
|
||||||
E_Border *modal;
|
|
||||||
|
|
||||||
E_Border *leader;
|
|
||||||
Eina_List *group;
|
|
||||||
|
|
||||||
E_Border *parent;
|
|
||||||
Eina_List *transients;
|
|
||||||
|
|
||||||
Efreet_Desktop *desktop;
|
|
||||||
E_Exec_Instance *exe_inst;
|
|
||||||
|
|
||||||
unsigned char comp_hidden : 1;
|
|
||||||
|
|
||||||
unsigned char post_move : 1;
|
|
||||||
unsigned char post_resize : 1;
|
|
||||||
unsigned char post_show : 1;
|
|
||||||
unsigned char during_lost : 1;
|
|
||||||
|
|
||||||
Ecore_Idle_Enterer *post_job;
|
|
||||||
|
|
||||||
Eina_Bool argb;
|
|
||||||
|
|
||||||
int tmp_input_hidden;
|
|
||||||
E_Focus_Policy focus_policy_override;
|
|
||||||
};
|
|
||||||
|
|
||||||
struct _E_Border_Pending_Move_Resize
|
|
||||||
{
|
|
||||||
int x, y, w, h;
|
|
||||||
unsigned char move : 1;
|
|
||||||
unsigned char resize : 1;
|
|
||||||
unsigned char without_border : 1;
|
|
||||||
unsigned int serial;
|
|
||||||
};
|
|
||||||
|
|
||||||
struct _E_Border_Hook
|
|
||||||
{
|
|
||||||
E_Border_Hook_Point hookpoint;
|
|
||||||
void (*func)(void *data, void *bd);
|
|
||||||
void *data;
|
|
||||||
unsigned char delete_me : 1;
|
|
||||||
};
|
|
||||||
|
|
||||||
struct _E_Event_Border_Hide
|
|
||||||
{
|
|
||||||
E_Border *border;
|
|
||||||
int manage;
|
|
||||||
};
|
|
||||||
|
|
||||||
struct _E_Event_Border_Simple
|
|
||||||
{
|
|
||||||
E_Border *border;
|
|
||||||
};
|
|
||||||
|
|
||||||
struct _E_Event_Border_Zone_Set
|
|
||||||
{
|
|
||||||
E_Border *border;
|
|
||||||
E_Zone *zone;
|
|
||||||
};
|
|
||||||
|
|
||||||
struct _E_Event_Border_Desk_Set
|
|
||||||
{
|
|
||||||
E_Border *border;
|
|
||||||
E_Desk *desk;
|
|
||||||
};
|
|
||||||
|
|
||||||
struct _E_Event_Border_Stack
|
|
||||||
{
|
|
||||||
E_Border *border, *stack;
|
|
||||||
E_Stacking type;
|
|
||||||
};
|
|
||||||
|
|
||||||
EINTERN int e_border_init(void);
|
|
||||||
EINTERN int e_border_shutdown(void);
|
|
||||||
|
|
||||||
EAPI E_Border *e_border_new(E_Container *con, Ecore_X_Window win, int first_map, int internal);
|
|
||||||
EAPI void e_border_ref(E_Border *bd);
|
|
||||||
EAPI void e_border_unref(E_Border *bd);
|
|
||||||
EAPI void e_border_res_change_geometry_save(E_Border *bd);
|
|
||||||
EAPI void e_border_res_change_geometry_restore(E_Border *bd);
|
|
||||||
|
|
||||||
EAPI void e_border_zone_set(E_Border *bd, E_Zone *zone);
|
|
||||||
EAPI void e_border_desk_set(E_Border *bd, E_Desk *desk);
|
|
||||||
EAPI void e_border_show(E_Border *bd);
|
|
||||||
EAPI void e_border_hide(E_Border *bd, int manage);
|
|
||||||
EAPI void e_border_move(E_Border *bd, int x, int y);
|
|
||||||
EAPI void e_border_move_intercept_cb_set(E_Border *bd, E_Border_Move_Intercept_Cb cb);
|
|
||||||
EAPI void e_border_move_without_border(E_Border *bd, int x, int y);
|
|
||||||
EAPI void e_border_center(E_Border *bd);
|
|
||||||
EAPI void e_border_center_pos_get(E_Border *bd, int *x, int *y);
|
|
||||||
EAPI void e_border_resize(E_Border *bd, int w, int h);
|
|
||||||
EAPI void e_border_resize_without_border(E_Border *bd, int w, int h);
|
|
||||||
EAPI void e_border_move_resize(E_Border *bd, int x, int y, int w, int h);
|
|
||||||
EAPI void e_border_move_resize_without_border(E_Border *bd, int x, int y, int w, int h);
|
|
||||||
EAPI void e_border_layer_set(E_Border *bd, E_Layer layer);
|
|
||||||
EAPI void e_border_raise(E_Border *bd);
|
|
||||||
EAPI void e_border_lower(E_Border *bd);
|
|
||||||
EAPI void e_border_stack_above(E_Border *bd, E_Border *above);
|
|
||||||
EAPI void e_border_stack_below(E_Border *bd, E_Border *below);
|
|
||||||
EAPI void e_border_focus_latest_set(E_Border *bd);
|
|
||||||
EAPI void e_border_raise_latest_set(E_Border *bd);
|
|
||||||
EAPI void e_border_focus_set_with_pointer(E_Border *bd);
|
|
||||||
EAPI void e_border_focus_set(E_Border *bd, int focus, int set);
|
|
||||||
EAPI void e_border_shade(E_Border *bd, E_Direction dir);
|
|
||||||
EAPI void e_border_unshade(E_Border *bd, E_Direction dir);
|
|
||||||
EAPI void e_border_maximize(E_Border *bd, E_Maximize max);
|
|
||||||
EAPI void e_border_unmaximize(E_Border *bd, E_Maximize max);
|
|
||||||
EAPI void e_border_fullscreen(E_Border *bd, E_Fullscreen policy);
|
|
||||||
EAPI void e_border_unfullscreen(E_Border *bd);
|
|
||||||
EAPI void e_border_iconify(E_Border *bd);
|
|
||||||
EAPI void e_border_uniconify(E_Border *bd);
|
|
||||||
EAPI void e_border_stick(E_Border *bd);
|
|
||||||
EAPI void e_border_unstick(E_Border *bd);
|
|
||||||
EAPI void e_border_pinned_set(E_Border *bd, int set);
|
|
||||||
|
|
||||||
EAPI E_Border *e_border_find_by_client_window(Ecore_X_Window win);
|
|
||||||
EAPI E_Border *e_border_find_all_by_client_window(Ecore_X_Window win);
|
|
||||||
EAPI E_Border *e_border_find_by_window(Ecore_X_Window win);
|
|
||||||
EAPI E_Border *e_border_find_by_alarm(Ecore_X_Sync_Alarm alarm);
|
|
||||||
EAPI E_Border *e_border_focused_get(void);
|
|
||||||
|
|
||||||
EAPI void e_border_idler_before(void);
|
|
||||||
|
|
||||||
EAPI Eina_List *e_border_client_list(void);
|
|
||||||
|
|
||||||
EAPI void e_border_act_move_keyboard(E_Border *bd);
|
|
||||||
EAPI void e_border_act_resize_keyboard(E_Border *bd);
|
|
||||||
|
|
||||||
EAPI void e_border_act_move_begin(E_Border *bd, E_Binding_Event_Mouse_Button *ev);
|
|
||||||
EAPI void e_border_act_move_end(E_Border *bd, E_Binding_Event_Mouse_Button *ev);
|
|
||||||
EAPI void e_border_act_resize_begin(E_Border *bd, E_Binding_Event_Mouse_Button *ev);
|
|
||||||
EAPI void e_border_act_resize_end(E_Border *bd, E_Binding_Event_Mouse_Button *ev);
|
|
||||||
EAPI void e_border_act_menu_begin(E_Border *bd, E_Binding_Event_Mouse_Button *ev, int key);
|
|
||||||
EAPI void e_border_act_close_begin(E_Border *bd);
|
|
||||||
EAPI void e_border_act_kill_begin(E_Border *bd);
|
|
||||||
|
|
||||||
EAPI Evas_Object *e_border_icon_add(E_Border *bd, Evas *evas);
|
|
||||||
|
|
||||||
EAPI void e_border_button_bindings_ungrab_all(void);
|
|
||||||
EAPI void e_border_button_bindings_grab_all(void);
|
|
||||||
|
|
||||||
EAPI Eina_List *e_border_focus_stack_get(void);
|
|
||||||
EAPI Eina_List *e_border_lost_windows_get(E_Zone *zone);
|
|
||||||
|
|
||||||
EAPI void e_border_ping(E_Border *bd);
|
|
||||||
EAPI void e_border_move_cancel(void);
|
|
||||||
EAPI void e_border_resize_cancel(void);
|
|
||||||
EAPI void e_border_frame_recalc(E_Border *bd);
|
|
||||||
EAPI Eina_List *e_border_immortal_windows_get(void);
|
|
||||||
|
|
||||||
EAPI const char *e_border_name_get(const E_Border *bd);
|
|
||||||
|
|
||||||
EAPI void e_border_signal_move_begin(E_Border *bd, const char *sig, const char *src);
|
|
||||||
EAPI void e_border_signal_move_end(E_Border *bd, const char *sig, const char *src);
|
|
||||||
EAPI int e_border_resizing_get(E_Border *bd);
|
|
||||||
EAPI void e_border_signal_resize_begin(E_Border *bd, const char *dir, const char *sig, const char *src);
|
|
||||||
EAPI void e_border_signal_resize_end(E_Border *bd, const char *dir, const char *sig, const char *src);
|
|
||||||
EAPI void e_border_resize_limit(E_Border *bd, int *w, int *h);
|
|
||||||
|
|
||||||
EAPI E_Border_Hook *e_border_hook_add(E_Border_Hook_Point hookpoint, void (*func)(void *data, void *bd), void *data);
|
|
||||||
EAPI void e_border_hook_del(E_Border_Hook *bh);
|
|
||||||
EAPI void e_border_focus_track_freeze(void);
|
|
||||||
EAPI void e_border_focus_track_thaw(void);
|
|
||||||
|
|
||||||
EAPI E_Border *e_border_under_pointer_get(E_Desk *desk, E_Border *exclude);
|
|
||||||
EAPI int e_border_pointer_warp_to_center_now(E_Border *bd);
|
|
||||||
EAPI int e_border_pointer_warp_to_center(E_Border *bd);
|
|
||||||
|
|
||||||
EAPI void e_border_comp_hidden_set(E_Border *bd, Eina_Bool hidden);
|
|
||||||
EAPI void e_border_tmp_input_hidden_push(E_Border *bd);
|
|
||||||
EAPI void e_border_tmp_input_hidden_pop(E_Border *bd);
|
|
||||||
|
|
||||||
EAPI void e_border_activate(E_Border *bd, Eina_Bool just_do_it);
|
|
||||||
|
|
||||||
EAPI void e_border_focus_lock_set(Eina_Bool lock);
|
|
||||||
EAPI Eina_Bool e_border_focus_lock_get(void);
|
|
||||||
|
|
||||||
EAPI void e_border_input_object_set(E_Border *bd, Evas_Object *input_obj);
|
|
||||||
|
|
||||||
extern EAPI int E_EVENT_BORDER_RESIZE;
|
|
||||||
extern EAPI int E_EVENT_BORDER_MOVE;
|
|
||||||
extern EAPI int E_EVENT_BORDER_ADD;
|
|
||||||
extern EAPI int E_EVENT_BORDER_SHOW;
|
|
||||||
extern EAPI int E_EVENT_BORDER_HIDE;
|
|
||||||
extern EAPI int E_EVENT_BORDER_REMOVE;
|
|
||||||
extern EAPI int E_EVENT_BORDER_ICONIFY;
|
|
||||||
extern EAPI int E_EVENT_BORDER_UNICONIFY;
|
|
||||||
extern EAPI int E_EVENT_BORDER_STICK;
|
|
||||||
extern EAPI int E_EVENT_BORDER_UNSTICK;
|
|
||||||
extern EAPI int E_EVENT_BORDER_ZONE_SET;
|
|
||||||
extern EAPI int E_EVENT_BORDER_DESK_SET;
|
|
||||||
extern EAPI int E_EVENT_BORDER_STACK;
|
|
||||||
extern EAPI int E_EVENT_BORDER_ICON_CHANGE;
|
|
||||||
extern EAPI int E_EVENT_BORDER_TITLE_CHANGE;
|
|
||||||
extern EAPI int E_EVENT_BORDER_URGENT_CHANGE;
|
|
||||||
extern EAPI int E_EVENT_BORDER_FOCUS_IN;
|
|
||||||
extern EAPI int E_EVENT_BORDER_FOCUS_OUT;
|
|
||||||
extern EAPI int E_EVENT_BORDER_PROPERTY;
|
|
||||||
extern EAPI int E_EVENT_BORDER_FULLSCREEN;
|
|
||||||
extern EAPI int E_EVENT_BORDER_UNFULLSCREEN;
|
|
||||||
|
|
||||||
static inline unsigned int
|
|
||||||
e_border_inset_width_get(const E_Border *bd)
|
|
||||||
{
|
|
||||||
return bd->client_inset.l + bd->client_inset.r;
|
|
||||||
}
|
|
||||||
|
|
||||||
static inline unsigned int
|
|
||||||
e_border_inset_height_get(const E_Border *bd)
|
|
||||||
{
|
|
||||||
return bd->client_inset.t + bd->client_inset.b;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* e_config not available everywhere e_border.h is used...
|
|
||||||
static inline Eina_Bool
|
|
||||||
e_border_focus_policy_click(const E_Border *bd)
|
|
||||||
{
|
|
||||||
return ((bd->focus_policy_override == E_FOCUS_CLICK) || (e_config->focus_policy == E_FOCUS_CLICK));
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
#define e_border_focus_policy_click(bd) \
|
|
||||||
((bd->focus_policy_override == E_FOCUS_CLICK) || (e_config->focus_policy == E_FOCUS_CLICK))
|
|
||||||
|
|
||||||
/* macro for finding misuse of changed flag */
|
|
||||||
#if 0
|
|
||||||
# define BD_CHANGED(BD) \
|
|
||||||
do { \
|
|
||||||
if (e_object_is_del(E_OBJECT(BD))) \
|
|
||||||
EINA_LOG_CRIT("CHANGED SET ON DELETED BORDER!"); \
|
|
||||||
BD->changed = 1; \
|
|
||||||
INF("%s:%d - BD CHANGED: %p", __FILE__, __LINE__, BD); \
|
|
||||||
} while (0)
|
|
||||||
#else
|
|
||||||
# define BD_CHANGED(BD) BD->changed = 1
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif
|
|
||||||
#endif
|
|
|
@ -143,19 +143,44 @@ e_canvas_rehint(void)
|
||||||
}
|
}
|
||||||
|
|
||||||
EAPI Ecore_Evas *
|
EAPI Ecore_Evas *
|
||||||
e_canvas_new(Ecore_X_Window win, int x, int y, int w, int h,
|
e_canvas_new(Ecore_Window win, int x, int y, int w, int h,
|
||||||
int direct_resize, int override, Ecore_X_Window *win_ret)
|
int direct_resize, int override, Ecore_Window *win_ret)
|
||||||
{
|
{
|
||||||
Ecore_Evas *ee;
|
Ecore_Evas *ee = NULL;
|
||||||
|
|
||||||
ee = ecore_evas_software_x11_new(NULL, win, x, y, w, h);
|
#ifdef WAYLAND_ONLY
|
||||||
|
ee = ecore_evas_wayland_shm_new(NULL, win, x, y, w, h, 0);
|
||||||
if (ee)
|
if (ee)
|
||||||
{
|
{
|
||||||
ecore_evas_override_set(ee, override);
|
ecore_evas_override_set(ee, override);
|
||||||
if (direct_resize) ecore_evas_software_x11_direct_resize_set(ee, 1);
|
if (win_ret) *win_ret = ecore_evas_wayland_window_get(ee);
|
||||||
if (win_ret) *win_ret = ecore_evas_software_x11_window_get(ee);
|
|
||||||
}
|
}
|
||||||
else
|
#else
|
||||||
|
switch (e_comp_get(NULL)->comp_type)
|
||||||
|
{
|
||||||
|
case E_PIXMAP_TYPE_X:
|
||||||
|
ee = ecore_evas_software_x11_new(NULL, win, x, y, w, h);
|
||||||
|
if (ee)
|
||||||
|
{
|
||||||
|
ecore_evas_override_set(ee, override);
|
||||||
|
if (direct_resize) ecore_evas_software_x11_direct_resize_set(ee, 1);
|
||||||
|
if (win_ret) *win_ret = ecore_evas_software_x11_window_get(ee);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
# ifdef HAVE_WAYLAND_CLIENTS
|
||||||
|
case E_PIXMAP_TYPE_WL:
|
||||||
|
ee = ecore_evas_wayland_shm_new(NULL, win, x, y, w, h, 0);
|
||||||
|
if (ee)
|
||||||
|
{
|
||||||
|
ecore_evas_override_set(ee, override);
|
||||||
|
if (win_ret) *win_ret = (Ecore_Window)ecore_evas_wayland_window_get(ee);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
# endif
|
||||||
|
default: break;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
if (!ee)
|
||||||
EINA_LOG_ERR("Impossible to build any Ecore_Evas window !!");
|
EINA_LOG_ERR("Impossible to build any Ecore_Evas window !!");
|
||||||
return ee;
|
return ee;
|
||||||
}
|
}
|
||||||
|
|
|
@ -10,7 +10,7 @@ EAPI void e_canvas_cache_flush(void);
|
||||||
EAPI void e_canvas_cache_reload(void);
|
EAPI void e_canvas_cache_reload(void);
|
||||||
EAPI void e_canvas_idle_flush(void);
|
EAPI void e_canvas_idle_flush(void);
|
||||||
EAPI void e_canvas_rehint(void);
|
EAPI void e_canvas_rehint(void);
|
||||||
EAPI Ecore_Evas *e_canvas_new(Ecore_X_Window win, int x, int y, int w, int h, int direct_resize, int override, Ecore_X_Window *win_ret);
|
EAPI Ecore_Evas *e_canvas_new(Ecore_Window win, int x, int y, int w, int h, int direct_resize, int override, Ecore_Window *win_ret);
|
||||||
|
|
||||||
EAPI const Eina_List *e_canvas_list(void);
|
EAPI const Eina_List *e_canvas_list(void);
|
||||||
#endif
|
#endif
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,800 @@
|
||||||
|
#ifdef E_TYPEDEFS
|
||||||
|
typedef enum _E_Screen_Limits
|
||||||
|
{
|
||||||
|
E_SCREEN_LIMITS_PARTLY = 0,
|
||||||
|
E_SCREEN_LIMITS_COMPLETELY = 1,
|
||||||
|
E_SCREEN_LIMITS_WITHIN = 2
|
||||||
|
} E_Screen_Limits;
|
||||||
|
|
||||||
|
typedef enum _E_Icon_Preference
|
||||||
|
{
|
||||||
|
E_ICON_PREF_E_DEFAULT,
|
||||||
|
E_ICON_PREF_NETWM,
|
||||||
|
E_ICON_PREF_USER
|
||||||
|
} E_Icon_Preference;
|
||||||
|
|
||||||
|
typedef enum _E_Direction
|
||||||
|
{
|
||||||
|
E_DIRECTION_UP,
|
||||||
|
E_DIRECTION_DOWN,
|
||||||
|
E_DIRECTION_LEFT,
|
||||||
|
E_DIRECTION_RIGHT
|
||||||
|
} E_Direction;
|
||||||
|
|
||||||
|
typedef enum _E_Transition
|
||||||
|
{
|
||||||
|
E_TRANSITION_LINEAR = 0,
|
||||||
|
E_TRANSITION_SINUSOIDAL = 1,
|
||||||
|
E_TRANSITION_ACCELERATE = 2,
|
||||||
|
E_TRANSITION_DECELERATE = 3,
|
||||||
|
E_TRANSITION_ACCELERATE_LOTS = 4,
|
||||||
|
E_TRANSITION_DECELERATE_LOTS = 5,
|
||||||
|
E_TRANSITION_SINUSOIDAL_LOTS = 6,
|
||||||
|
E_TRANSITION_BOUNCE = 7,
|
||||||
|
E_TRANSITION_BOUNCE_LOTS = 8
|
||||||
|
} E_Transition;
|
||||||
|
|
||||||
|
typedef enum _E_Stacking
|
||||||
|
{
|
||||||
|
E_STACKING_NONE,
|
||||||
|
E_STACKING_ABOVE,
|
||||||
|
E_STACKING_BELOW
|
||||||
|
} E_Stacking;
|
||||||
|
|
||||||
|
typedef enum _E_Focus_Policy
|
||||||
|
{
|
||||||
|
E_FOCUS_CLICK,
|
||||||
|
E_FOCUS_MOUSE,
|
||||||
|
E_FOCUS_SLOPPY,
|
||||||
|
E_FOCUS_LAST,
|
||||||
|
} E_Focus_Policy;
|
||||||
|
|
||||||
|
typedef enum
|
||||||
|
{
|
||||||
|
/* same as ecore-x types */
|
||||||
|
E_WINDOW_TYPE_UNKNOWN = 0,
|
||||||
|
E_WINDOW_TYPE_DESKTOP,
|
||||||
|
E_WINDOW_TYPE_DOCK,
|
||||||
|
E_WINDOW_TYPE_TOOLBAR,
|
||||||
|
E_WINDOW_TYPE_MENU,
|
||||||
|
E_WINDOW_TYPE_UTILITY,
|
||||||
|
E_WINDOW_TYPE_SPLASH,
|
||||||
|
E_WINDOW_TYPE_DIALOG,
|
||||||
|
E_WINDOW_TYPE_NORMAL,
|
||||||
|
E_WINDOW_TYPE_DROPDOWN_MENU,
|
||||||
|
E_WINDOW_TYPE_POPUP_MENU,
|
||||||
|
E_WINDOW_TYPE_TOOLTIP,
|
||||||
|
E_WINDOW_TYPE_NOTIFICATION,
|
||||||
|
E_WINDOW_TYPE_COMBO,
|
||||||
|
E_WINDOW_TYPE_DND
|
||||||
|
} E_Window_Type;
|
||||||
|
|
||||||
|
typedef enum _E_Urgency_Policy
|
||||||
|
{
|
||||||
|
E_ACTIVEHINT_POLICY_IGNORE,
|
||||||
|
E_ACTIVEHINT_POLICY_ANIMATE,
|
||||||
|
E_ACTIVEHINT_POLICY_ACTIVATE
|
||||||
|
} E_Urgency_Policy;
|
||||||
|
|
||||||
|
typedef enum _E_Focus_Setting
|
||||||
|
{
|
||||||
|
E_FOCUS_NONE,
|
||||||
|
E_FOCUS_NEW_WINDOW,
|
||||||
|
E_FOCUS_NEW_DIALOG,
|
||||||
|
E_FOCUS_NEW_DIALOG_IF_OWNER_FOCUSED
|
||||||
|
} E_Focus_Setting;
|
||||||
|
|
||||||
|
typedef enum _E_Maximize
|
||||||
|
{
|
||||||
|
E_MAXIMIZE_NONE = 0x00000000,
|
||||||
|
E_MAXIMIZE_FULLSCREEN = 0x00000001,
|
||||||
|
E_MAXIMIZE_SMART = 0x00000002,
|
||||||
|
E_MAXIMIZE_EXPAND = 0x00000003,
|
||||||
|
E_MAXIMIZE_FILL = 0x00000004,
|
||||||
|
E_MAXIMIZE_TYPE = 0x0000000f,
|
||||||
|
E_MAXIMIZE_VERTICAL = 0x00000010,
|
||||||
|
E_MAXIMIZE_HORIZONTAL = 0x00000020,
|
||||||
|
E_MAXIMIZE_BOTH = 0x00000030,
|
||||||
|
E_MAXIMIZE_LEFT = 0x00000070,
|
||||||
|
E_MAXIMIZE_RIGHT = 0x000000b0,
|
||||||
|
E_MAXIMIZE_DIRECTION = 0x000000f0
|
||||||
|
} E_Maximize;
|
||||||
|
|
||||||
|
typedef enum _E_Fullscreen
|
||||||
|
{
|
||||||
|
/* Resize window */
|
||||||
|
E_FULLSCREEN_RESIZE,
|
||||||
|
/* Change screen resoultion and resize window */
|
||||||
|
E_FULLSCREEN_ZOOM
|
||||||
|
} E_Fullscreen;
|
||||||
|
|
||||||
|
typedef enum _E_Window_Placement
|
||||||
|
{
|
||||||
|
E_WINDOW_PLACEMENT_SMART,
|
||||||
|
E_WINDOW_PLACEMENT_ANTIGADGET,
|
||||||
|
E_WINDOW_PLACEMENT_CURSOR,
|
||||||
|
E_WINDOW_PLACEMENT_MANUAL
|
||||||
|
} E_Window_Placement;
|
||||||
|
|
||||||
|
typedef enum E_Client_Property
|
||||||
|
{
|
||||||
|
E_CLIENT_PROPERTY_NONE = 0,
|
||||||
|
E_CLIENT_PROPERTY_SIZE = (1 << 0),
|
||||||
|
E_CLIENT_PROPERTY_POS = (1 << 1),
|
||||||
|
E_CLIENT_PROPERTY_TITLE = (1 << 2),
|
||||||
|
E_CLIENT_PROPERTY_ICON = (1 << 3),
|
||||||
|
E_CLIENT_PROPERTY_URGENCY = (1 << 4),
|
||||||
|
E_CLIENT_PROPERTY_GRAVITY = (1 << 5),
|
||||||
|
E_CLIENT_PROPERTY_NETWM_STATE = (1 << 6),
|
||||||
|
} E_Client_Property;
|
||||||
|
|
||||||
|
typedef struct E_Client E_Client;
|
||||||
|
|
||||||
|
typedef struct E_Event_Client E_Event_Client;
|
||||||
|
typedef struct _E_Event_Client_Property E_Event_Client_Property;
|
||||||
|
typedef struct _E_Client_Pending_Resize E_Client_Pending_Resize;
|
||||||
|
typedef struct E_Event_Client_Zone_Set E_Event_Client_Zone_Set;
|
||||||
|
typedef struct E_Event_Client_Desk_Set E_Event_Client_Desk_Set;
|
||||||
|
typedef struct _E_Client_Hook E_Client_Hook;
|
||||||
|
|
||||||
|
typedef enum _E_Client_Hook_Point
|
||||||
|
{
|
||||||
|
E_CLIENT_HOOK_EVAL_PRE_FETCH,
|
||||||
|
E_CLIENT_HOOK_EVAL_FETCH,
|
||||||
|
E_CLIENT_HOOK_EVAL_PRE_POST_FETCH,
|
||||||
|
E_CLIENT_HOOK_EVAL_POST_FETCH,
|
||||||
|
E_CLIENT_HOOK_EVAL_PRE_FRAME_ASSIGN,
|
||||||
|
E_CLIENT_HOOK_EVAL_POST_FRAME_ASSIGN,
|
||||||
|
E_CLIENT_HOOK_EVAL_PRE_NEW_CLIENT,
|
||||||
|
E_CLIENT_HOOK_EVAL_POST_NEW_CLIENT,
|
||||||
|
E_CLIENT_HOOK_EVAL_END,
|
||||||
|
E_CLIENT_HOOK_FOCUS_SET,
|
||||||
|
E_CLIENT_HOOK_FOCUS_UNSET,
|
||||||
|
E_CLIENT_HOOK_NEW_CLIENT,
|
||||||
|
E_CLIENT_HOOK_DESK_SET,
|
||||||
|
E_CLIENT_HOOK_MOVE_BEGIN,
|
||||||
|
E_CLIENT_HOOK_MOVE_UPDATE,
|
||||||
|
E_CLIENT_HOOK_MOVE_END,
|
||||||
|
E_CLIENT_HOOK_RESIZE_BEGIN,
|
||||||
|
E_CLIENT_HOOK_RESIZE_UPDATE,
|
||||||
|
E_CLIENT_HOOK_RESIZE_END,
|
||||||
|
E_CLIENT_HOOK_DEL,
|
||||||
|
E_CLIENT_HOOK_UNREDIRECT,
|
||||||
|
E_CLIENT_HOOK_REDIRECT,
|
||||||
|
} E_Client_Hook_Point;
|
||||||
|
|
||||||
|
typedef void (*E_Client_Move_Intercept_Cb)(E_Client *, int x, int y);
|
||||||
|
typedef void (*E_Client_Hook_Cb)(void *data, E_Client *ec);
|
||||||
|
#else
|
||||||
|
|
||||||
|
#define E_CLIENT_TYPE (int)0xE0b01002
|
||||||
|
|
||||||
|
struct E_Event_Client
|
||||||
|
{
|
||||||
|
E_Client *ec;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct E_Event_Client_Desk_Set
|
||||||
|
{
|
||||||
|
E_Client *ec;
|
||||||
|
E_Desk *desk;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct E_Event_Client_Zone_Set
|
||||||
|
{
|
||||||
|
E_Client *ec;
|
||||||
|
E_Zone *zone;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct _E_Event_Client_Property
|
||||||
|
{
|
||||||
|
E_Client *ec;
|
||||||
|
unsigned int property;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct _E_Client_Hook
|
||||||
|
{
|
||||||
|
E_Client_Hook_Point hookpoint;
|
||||||
|
E_Client_Hook_Cb func;
|
||||||
|
void *data;
|
||||||
|
unsigned char delete_me : 1;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct _E_Client_Pending_Resize
|
||||||
|
{
|
||||||
|
int w, h;
|
||||||
|
unsigned int serial;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct E_Client
|
||||||
|
{
|
||||||
|
E_Object e_obj_inherit;
|
||||||
|
EINA_INLIST;
|
||||||
|
|
||||||
|
E_Pixmap *pixmap;
|
||||||
|
E_Comp *comp;
|
||||||
|
int depth;
|
||||||
|
int x, y, w, h; //frame+client geom
|
||||||
|
Eina_Rectangle client; //client geom
|
||||||
|
Evas_Object *frame; //comp object
|
||||||
|
E_Zone *zone;
|
||||||
|
E_Desk *desk;
|
||||||
|
|
||||||
|
Ecore_Poller *ping_poller;
|
||||||
|
Ecore_Timer *kill_timer;
|
||||||
|
|
||||||
|
E_Client *modal;
|
||||||
|
|
||||||
|
E_Client *leader;
|
||||||
|
Eina_List *group;
|
||||||
|
|
||||||
|
E_Client *parent;
|
||||||
|
Eina_List *transients;
|
||||||
|
|
||||||
|
E_Layer layer;
|
||||||
|
|
||||||
|
Eina_Rectangle *shape_rects;
|
||||||
|
unsigned int shape_rects_num;
|
||||||
|
|
||||||
|
Eina_Rectangle *shape_input_rects;
|
||||||
|
unsigned int shape_input_rects_num;
|
||||||
|
|
||||||
|
Eina_Stringshare *internal_icon;
|
||||||
|
Eina_Stringshare *internal_icon_key;
|
||||||
|
|
||||||
|
E_Direction shade_dir;
|
||||||
|
|
||||||
|
E_Comp_Client_Data *comp_data; //private for the compositor engine (X, Wayland) ONLY
|
||||||
|
|
||||||
|
Evas_Object *input_object; //for running wayland clients in X
|
||||||
|
|
||||||
|
E_Action *cur_mouse_action;
|
||||||
|
|
||||||
|
int border_size; //size of client's border
|
||||||
|
|
||||||
|
struct
|
||||||
|
{
|
||||||
|
struct
|
||||||
|
{
|
||||||
|
int x, y, w, h;
|
||||||
|
int mx, my;
|
||||||
|
} current, last_down[3], last_up[3];
|
||||||
|
} mouse;
|
||||||
|
|
||||||
|
struct
|
||||||
|
{
|
||||||
|
struct
|
||||||
|
{
|
||||||
|
int x, y, w, h;
|
||||||
|
int mx, my;
|
||||||
|
int button;
|
||||||
|
} down;
|
||||||
|
} moveinfo;
|
||||||
|
|
||||||
|
unsigned char ignore_first_unmap;
|
||||||
|
E_Pointer_Mode resize_mode;
|
||||||
|
|
||||||
|
struct
|
||||||
|
{
|
||||||
|
Eina_Bool mapping_change : 1;
|
||||||
|
Eina_Bool iconic_shading : 1;
|
||||||
|
} hacks;
|
||||||
|
|
||||||
|
struct
|
||||||
|
{
|
||||||
|
unsigned char changed : 1;
|
||||||
|
unsigned char user_selected : 1;
|
||||||
|
Eina_Stringshare *name;
|
||||||
|
} border;
|
||||||
|
|
||||||
|
struct
|
||||||
|
{
|
||||||
|
int x, y, w, h;
|
||||||
|
E_Layer layer;
|
||||||
|
int zone;
|
||||||
|
E_Maximize maximized;
|
||||||
|
} saved;
|
||||||
|
|
||||||
|
struct
|
||||||
|
{
|
||||||
|
unsigned char valid : 1;
|
||||||
|
int x, y, w, h;
|
||||||
|
struct
|
||||||
|
{
|
||||||
|
int x, y, w, h;
|
||||||
|
} saved;
|
||||||
|
} pre_res_change;
|
||||||
|
|
||||||
|
unsigned char shaped : 1;
|
||||||
|
unsigned char argb : 1;
|
||||||
|
|
||||||
|
/* ICCCM */
|
||||||
|
struct
|
||||||
|
{
|
||||||
|
Eina_Stringshare *title;
|
||||||
|
Eina_Stringshare *name;
|
||||||
|
Eina_Stringshare *class;
|
||||||
|
Eina_Stringshare *icon_name;
|
||||||
|
Eina_Stringshare *machine;
|
||||||
|
int min_w, min_h;
|
||||||
|
int max_w, max_h;
|
||||||
|
int base_w, base_h;
|
||||||
|
int step_w, step_h;
|
||||||
|
int start_x, start_y;
|
||||||
|
double min_aspect, max_aspect;
|
||||||
|
Ecore_Window icon_window;
|
||||||
|
Ecore_Window window_group;
|
||||||
|
Ecore_Window transient_for;
|
||||||
|
Ecore_Window client_leader;
|
||||||
|
#ifdef E_COMP_X_H
|
||||||
|
Ecore_X_Window_State_Hint initial_state;
|
||||||
|
Ecore_X_Window_State_Hint state;
|
||||||
|
Ecore_X_Pixmap icon_pixmap;
|
||||||
|
Ecore_X_Pixmap icon_mask;
|
||||||
|
Ecore_X_Gravity gravity;
|
||||||
|
#endif
|
||||||
|
Eina_Stringshare *window_role;
|
||||||
|
unsigned char take_focus : 1;
|
||||||
|
unsigned char accepts_focus : 1;
|
||||||
|
unsigned char urgent : 1;
|
||||||
|
unsigned char delete_request : 1;
|
||||||
|
unsigned char request_pos : 1;
|
||||||
|
struct
|
||||||
|
{
|
||||||
|
int argc;
|
||||||
|
char **argv;
|
||||||
|
} command;
|
||||||
|
struct
|
||||||
|
{
|
||||||
|
unsigned char title : 1;
|
||||||
|
unsigned char name_class : 1;
|
||||||
|
unsigned char icon_name : 1;
|
||||||
|
unsigned char machine : 1;
|
||||||
|
unsigned char hints : 1;
|
||||||
|
unsigned char size_pos_hints : 1;
|
||||||
|
unsigned char protocol : 1;
|
||||||
|
unsigned char transient_for : 1;
|
||||||
|
unsigned char client_leader : 1;
|
||||||
|
unsigned char window_role : 1;
|
||||||
|
unsigned char state : 1;
|
||||||
|
unsigned char command : 1;
|
||||||
|
} fetch;
|
||||||
|
} icccm;
|
||||||
|
|
||||||
|
/* MWM */
|
||||||
|
struct
|
||||||
|
{
|
||||||
|
#ifdef E_COMP_X_H
|
||||||
|
Ecore_X_MWM_Hint_Func func;
|
||||||
|
Ecore_X_MWM_Hint_Decor decor;
|
||||||
|
Ecore_X_MWM_Hint_Input input;
|
||||||
|
#endif
|
||||||
|
unsigned char exists : 1;
|
||||||
|
unsigned char borderless : 1;
|
||||||
|
struct
|
||||||
|
{
|
||||||
|
unsigned char hints : 1;
|
||||||
|
} fetch;
|
||||||
|
} mwm;
|
||||||
|
|
||||||
|
/* NetWM */
|
||||||
|
struct
|
||||||
|
{
|
||||||
|
pid_t pid;
|
||||||
|
unsigned int desktop;
|
||||||
|
Eina_Stringshare *name;
|
||||||
|
Eina_Stringshare *icon_name;
|
||||||
|
#ifdef E_COMP_X_H
|
||||||
|
Ecore_X_Icon *icons;
|
||||||
|
#endif
|
||||||
|
int num_icons;
|
||||||
|
unsigned int user_time;
|
||||||
|
unsigned char opacity;
|
||||||
|
Eina_Bool opacity_changed : 1; // prevent fetching opacity next prop change
|
||||||
|
struct
|
||||||
|
{
|
||||||
|
int left;
|
||||||
|
int right;
|
||||||
|
int top;
|
||||||
|
int bottom;
|
||||||
|
int left_start_y;
|
||||||
|
int left_end_y;
|
||||||
|
int right_start_y;
|
||||||
|
int right_end_y;
|
||||||
|
int top_start_x;
|
||||||
|
int top_end_x;
|
||||||
|
int bottom_start_x;
|
||||||
|
int bottom_end_x;
|
||||||
|
} strut;
|
||||||
|
unsigned char ping : 1;
|
||||||
|
struct
|
||||||
|
{
|
||||||
|
unsigned char request : 1;
|
||||||
|
unsigned char alarm : 1;
|
||||||
|
unsigned int wait;
|
||||||
|
unsigned int serial;
|
||||||
|
double send_time;
|
||||||
|
} sync;
|
||||||
|
|
||||||
|
/* NetWM Window state */
|
||||||
|
struct
|
||||||
|
{
|
||||||
|
unsigned char modal : 1;
|
||||||
|
unsigned char sticky : 1;
|
||||||
|
unsigned char maximized_v : 1;
|
||||||
|
unsigned char maximized_h : 1;
|
||||||
|
unsigned char shaded : 1;
|
||||||
|
unsigned char skip_taskbar : 1;
|
||||||
|
unsigned char skip_pager : 1;
|
||||||
|
unsigned char hidden : 1;
|
||||||
|
unsigned char fullscreen : 1;
|
||||||
|
E_Stacking stacking;
|
||||||
|
} state;
|
||||||
|
|
||||||
|
/* NetWM Window allowed actions */
|
||||||
|
struct
|
||||||
|
{
|
||||||
|
unsigned char move : 1;
|
||||||
|
unsigned char resize : 1;
|
||||||
|
unsigned char minimize : 1;
|
||||||
|
unsigned char shade : 1;
|
||||||
|
unsigned char stick : 1;
|
||||||
|
unsigned char maximized_h : 1;
|
||||||
|
unsigned char maximized_v : 1;
|
||||||
|
unsigned char fullscreen : 1;
|
||||||
|
unsigned char change_desktop : 1;
|
||||||
|
unsigned char close : 1;
|
||||||
|
} action;
|
||||||
|
E_Window_Type type;
|
||||||
|
E_Window_Type *extra_types;
|
||||||
|
int extra_types_num;
|
||||||
|
int startup_id;
|
||||||
|
|
||||||
|
struct
|
||||||
|
{
|
||||||
|
unsigned char name : 1;
|
||||||
|
unsigned char icon_name : 1;
|
||||||
|
unsigned char icon : 1;
|
||||||
|
unsigned char user_time : 1;
|
||||||
|
unsigned char strut : 1;
|
||||||
|
unsigned char type : 1;
|
||||||
|
unsigned char state : 1;
|
||||||
|
unsigned char opacity : 1;
|
||||||
|
/* No, fetch on new_client, shouldn't be changed after map.
|
||||||
|
unsigned char pid : 1;
|
||||||
|
*/
|
||||||
|
/* No, ignore this
|
||||||
|
unsigned char desktop : 1;
|
||||||
|
*/
|
||||||
|
} fetch;
|
||||||
|
|
||||||
|
struct
|
||||||
|
{
|
||||||
|
unsigned char state : 1;
|
||||||
|
} update;
|
||||||
|
} netwm;
|
||||||
|
|
||||||
|
/* Extra e stuff */
|
||||||
|
struct
|
||||||
|
{
|
||||||
|
struct
|
||||||
|
{
|
||||||
|
struct
|
||||||
|
{
|
||||||
|
int x, y;
|
||||||
|
|
||||||
|
unsigned char updated : 1;
|
||||||
|
} video_position;
|
||||||
|
Ecore_Window video_parent;
|
||||||
|
E_Client *video_parent_client;
|
||||||
|
Eina_List *video_child;
|
||||||
|
struct
|
||||||
|
{
|
||||||
|
Eina_Stringshare *name;
|
||||||
|
Eina_Stringshare **available_list;
|
||||||
|
Eina_Stringshare *set;
|
||||||
|
int num;
|
||||||
|
unsigned char wait_for_done : 1;
|
||||||
|
unsigned char use : 1;
|
||||||
|
} profile;
|
||||||
|
unsigned char centered : 1;
|
||||||
|
unsigned char video : 1;
|
||||||
|
} state;
|
||||||
|
|
||||||
|
struct
|
||||||
|
{
|
||||||
|
unsigned char state : 1;
|
||||||
|
unsigned char video_parent : 1;
|
||||||
|
unsigned char video_position : 1;
|
||||||
|
unsigned char profile : 1;
|
||||||
|
} fetch;
|
||||||
|
} e;
|
||||||
|
|
||||||
|
struct
|
||||||
|
{
|
||||||
|
struct
|
||||||
|
{
|
||||||
|
unsigned char soft_menu : 1;
|
||||||
|
unsigned char soft_menus : 1;
|
||||||
|
} fetch;
|
||||||
|
|
||||||
|
unsigned char soft_menu : 1;
|
||||||
|
unsigned char soft_menus : 1;
|
||||||
|
} qtopia;
|
||||||
|
|
||||||
|
struct
|
||||||
|
{
|
||||||
|
struct
|
||||||
|
{
|
||||||
|
unsigned char state : 1;
|
||||||
|
unsigned char vkbd : 1;
|
||||||
|
} fetch;
|
||||||
|
#ifdef E_COMP_X_H
|
||||||
|
Ecore_X_Virtual_Keyboard_State state;
|
||||||
|
#endif
|
||||||
|
unsigned char have_property : 1;
|
||||||
|
unsigned char vkbd : 1;
|
||||||
|
} vkbd;
|
||||||
|
|
||||||
|
struct
|
||||||
|
{
|
||||||
|
unsigned char visible : 1;
|
||||||
|
unsigned char pos : 1;
|
||||||
|
unsigned char size : 1;
|
||||||
|
unsigned char stack : 1;
|
||||||
|
unsigned char prop : 1;
|
||||||
|
unsigned char border : 1;
|
||||||
|
unsigned char reset_gravity : 1;
|
||||||
|
unsigned char shading : 1;
|
||||||
|
unsigned char shaded : 1;
|
||||||
|
unsigned char shape : 1;
|
||||||
|
unsigned char shape_input : 1;
|
||||||
|
unsigned char icon : 1;
|
||||||
|
Eina_Bool internal_props : 1;
|
||||||
|
Eina_Bool internal_state : 1;
|
||||||
|
Eina_Bool need_maximize : 1;
|
||||||
|
Eina_Bool need_unmaximize : 1;
|
||||||
|
} changes;
|
||||||
|
|
||||||
|
unsigned int visible : 1;
|
||||||
|
Eina_Bool hidden : 1; // set when window has been hidden by api and should not be shown
|
||||||
|
unsigned int await_hide_event;
|
||||||
|
unsigned int moving : 1;
|
||||||
|
unsigned int focused : 1;
|
||||||
|
unsigned int new_client : 1;
|
||||||
|
unsigned int re_manage : 1;
|
||||||
|
unsigned int placed : 1;
|
||||||
|
unsigned int shading : 1;
|
||||||
|
unsigned int shaded : 1;
|
||||||
|
unsigned int iconic : 1;
|
||||||
|
unsigned int deskshow : 1;
|
||||||
|
unsigned int sticky : 1;
|
||||||
|
unsigned int shaped_input : 1;
|
||||||
|
unsigned int need_shape_merge : 1;
|
||||||
|
unsigned int need_shape_export : 1;
|
||||||
|
unsigned int fullscreen : 1;
|
||||||
|
unsigned int need_fullscreen : 1;
|
||||||
|
unsigned int already_unparented : 1;
|
||||||
|
unsigned int need_reparent : 1;
|
||||||
|
unsigned int button_grabbed : 1;
|
||||||
|
unsigned int delete_requested : 1;
|
||||||
|
unsigned int ping_ok : 1;
|
||||||
|
unsigned int hung : 1;
|
||||||
|
unsigned int take_focus : 1;
|
||||||
|
unsigned int want_focus : 1;
|
||||||
|
unsigned int user_skip_winlist : 1;
|
||||||
|
E_Maximize maximized;
|
||||||
|
E_Fullscreen fullscreen_policy;
|
||||||
|
unsigned int borderless : 1;
|
||||||
|
unsigned char offer_resistance : 1;
|
||||||
|
Eina_Stringshare *bordername;
|
||||||
|
|
||||||
|
unsigned int lock_user_location : 1; /*DONE*/
|
||||||
|
unsigned int lock_client_location : 1; /*DONE*/
|
||||||
|
unsigned int lock_user_size : 1; /*DONE*/
|
||||||
|
unsigned int lock_client_size : 1; /*DONE*/
|
||||||
|
unsigned int lock_user_stacking : 1; /*DONE*/
|
||||||
|
unsigned int lock_client_stacking : 1; /*DONE*/
|
||||||
|
unsigned int lock_user_iconify : 1; /*DONE*/
|
||||||
|
unsigned int lock_client_iconify : 1; /*DONE*/
|
||||||
|
unsigned int lock_user_desk : 1;
|
||||||
|
unsigned int lock_client_desk : 1;
|
||||||
|
unsigned int lock_user_sticky : 1; /*DONE*/
|
||||||
|
unsigned int lock_client_sticky : 1; /*DONE*/
|
||||||
|
unsigned int lock_user_shade : 1; /*DONE*/
|
||||||
|
unsigned int lock_client_shade : 1; /*DONE*/
|
||||||
|
unsigned int lock_user_maximize : 1; /*DONE*/
|
||||||
|
unsigned int lock_client_maximize : 1; /*DONE*/
|
||||||
|
unsigned int lock_user_fullscreen : 1; /*DONE*/
|
||||||
|
unsigned int lock_client_fullscreen : 1; /*DONE*/
|
||||||
|
unsigned int lock_border : 1; /*DONE*/
|
||||||
|
unsigned int lock_close : 1; /*DONE*/
|
||||||
|
unsigned int lock_focus_in : 1; /*DONE*/
|
||||||
|
unsigned int lock_focus_out : 1; /*DONE*/
|
||||||
|
unsigned int lock_life : 1; /*DONE*/
|
||||||
|
|
||||||
|
unsigned int stolen : 1;
|
||||||
|
|
||||||
|
unsigned int internal : 1;
|
||||||
|
unsigned int internal_no_remember : 1;
|
||||||
|
unsigned int internal_no_reopen : 1;
|
||||||
|
Eina_Bool theme_shadow : 1;
|
||||||
|
|
||||||
|
Ecore_Evas *internal_ecore_evas;
|
||||||
|
|
||||||
|
double ping;
|
||||||
|
|
||||||
|
unsigned char changed : 1;
|
||||||
|
|
||||||
|
unsigned char icon_preference;
|
||||||
|
|
||||||
|
struct
|
||||||
|
{
|
||||||
|
int x, y;
|
||||||
|
int modified;
|
||||||
|
} shelf_fix;
|
||||||
|
|
||||||
|
Eina_List *stick_desks;
|
||||||
|
E_Menu *border_menu;
|
||||||
|
E_Config_Dialog *border_locks_dialog;
|
||||||
|
E_Config_Dialog *border_remember_dialog;
|
||||||
|
E_Config_Dialog *border_border_dialog;
|
||||||
|
E_Dialog *border_prop_dialog;
|
||||||
|
Eina_List *pending_resize;
|
||||||
|
|
||||||
|
struct
|
||||||
|
{
|
||||||
|
unsigned char start : 1;
|
||||||
|
int x, y;
|
||||||
|
} drag;
|
||||||
|
|
||||||
|
Ecore_Timer *raise_timer;
|
||||||
|
E_Client_Move_Intercept_Cb move_intercept_cb;
|
||||||
|
E_Remember *remember;
|
||||||
|
|
||||||
|
Efreet_Desktop *desktop;
|
||||||
|
E_Exec_Instance *exe_inst;
|
||||||
|
|
||||||
|
unsigned char comp_hidden : 1;
|
||||||
|
|
||||||
|
unsigned char post_move : 1;
|
||||||
|
unsigned char post_resize : 1;
|
||||||
|
unsigned char post_show : 1;
|
||||||
|
unsigned char during_lost : 1;
|
||||||
|
|
||||||
|
Ecore_Idle_Enterer *post_job;
|
||||||
|
|
||||||
|
E_Focus_Policy focus_policy_override;
|
||||||
|
|
||||||
|
Eina_Bool override : 1;
|
||||||
|
Eina_Bool input_only : 1;
|
||||||
|
Eina_Bool dialog : 1;
|
||||||
|
Eina_Bool tooltip : 1;
|
||||||
|
Eina_Bool redirected : 1;
|
||||||
|
Eina_Bool shape_changed : 1;
|
||||||
|
Eina_Bool layer_block : 1; // client is doing crazy stuff and should not be relayered in protocol
|
||||||
|
Eina_Bool ignored : 1; // client is comp-ignored
|
||||||
|
Eina_Bool no_shape_cut : 1; // client shape should not be cut
|
||||||
|
};
|
||||||
|
|
||||||
|
#define e_client_focus_policy_click(ec) \
|
||||||
|
((ec->focus_policy_override == E_FOCUS_CLICK) || (e_config->focus_policy == E_FOCUS_CLICK))
|
||||||
|
|
||||||
|
/* macro for finding misuse of changed flag */
|
||||||
|
#if 0
|
||||||
|
# define EC_CHANGED(EC) \
|
||||||
|
do { \
|
||||||
|
if (e_object_is_del(E_OBJECT(EC))) \
|
||||||
|
EINA_LOG_CRIT("CHANGED SET ON DELETED CLIENT!"); \
|
||||||
|
EC->changed = 1; \
|
||||||
|
INF("%s:%d - EC CHANGED: %p", __FILE__, __LINE__, EC); \
|
||||||
|
} while (0)
|
||||||
|
#else
|
||||||
|
# define EC_CHANGED(EC) EC->changed = 1
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define E_CLIENT_FOREACH(COMP, EC) \
|
||||||
|
for (EC = e_client_bottom_get(COMP); EC; EC = e_client_above_get(EC))
|
||||||
|
|
||||||
|
#define E_CLIENT_REVERSE_FOREACH(COMP, EC) \
|
||||||
|
for (EC = e_client_top_get(COMP); EC; EC = e_client_below_get(EC))
|
||||||
|
|
||||||
|
|
||||||
|
EAPI extern int E_EVENT_CLIENT_ADD;
|
||||||
|
EAPI extern int E_EVENT_CLIENT_REMOVE;
|
||||||
|
EAPI extern int E_EVENT_CLIENT_ZONE_SET;
|
||||||
|
EAPI extern int E_EVENT_CLIENT_DESK_SET;
|
||||||
|
EAPI extern int E_EVENT_CLIENT_RESIZE;
|
||||||
|
EAPI extern int E_EVENT_CLIENT_MOVE;
|
||||||
|
EAPI extern int E_EVENT_CLIENT_SHOW;
|
||||||
|
EAPI extern int E_EVENT_CLIENT_HIDE;
|
||||||
|
EAPI extern int E_EVENT_CLIENT_ICONIFY;
|
||||||
|
EAPI extern int E_EVENT_CLIENT_UNICONIFY;
|
||||||
|
EAPI extern int E_EVENT_CLIENT_STICK;
|
||||||
|
EAPI extern int E_EVENT_CLIENT_UNSTICK;
|
||||||
|
EAPI extern int E_EVENT_CLIENT_STACK;
|
||||||
|
EAPI extern int E_EVENT_CLIENT_FOCUS_IN;
|
||||||
|
EAPI extern int E_EVENT_CLIENT_FOCUS_OUT;
|
||||||
|
EAPI extern int E_EVENT_CLIENT_PROPERTY;
|
||||||
|
EAPI extern int E_EVENT_CLIENT_FULLSCREEN;
|
||||||
|
EAPI extern int E_EVENT_CLIENT_UNFULLSCREEN;
|
||||||
|
|
||||||
|
|
||||||
|
EINTERN void e_client_idler_before(void);
|
||||||
|
EINTERN Eina_Bool e_client_init(void);
|
||||||
|
EINTERN void e_client_shutdown(void);
|
||||||
|
EAPI E_Client *e_client_new(E_Comp *c, E_Pixmap *cp, int first_map, int internal);
|
||||||
|
EAPI void e_client_desk_set(E_Client *ec, E_Desk *desk);
|
||||||
|
EAPI Eina_Bool e_client_comp_grabbed_get(void);
|
||||||
|
EAPI E_Client *e_client_action_get(void);
|
||||||
|
EAPI E_Client *e_client_warping_get(void);
|
||||||
|
EAPI Eina_List *e_clients_immortal_list(const E_Comp *c);
|
||||||
|
EAPI void e_client_mouse_in(E_Client *ec, int x, int y);
|
||||||
|
EAPI void e_client_mouse_out(E_Client *ec, int x, int y);
|
||||||
|
EAPI void e_client_mouse_wheel(E_Client *ec, Evas_Point *output, E_Binding_Event_Wheel *ev);
|
||||||
|
EAPI void e_client_mouse_down(E_Client *ec, int button, Evas_Point *output, E_Binding_Event_Mouse_Button *ev);
|
||||||
|
EAPI void e_client_mouse_up(E_Client *ec, int button, Evas_Point *output, E_Binding_Event_Mouse_Button* ev);
|
||||||
|
EAPI void e_client_mouse_move(E_Client *ec, Evas_Point *output);
|
||||||
|
EAPI void e_client_res_change_geometry_save(E_Client *bd);
|
||||||
|
EAPI void e_client_res_change_geometry_restore(E_Client *ec);
|
||||||
|
EAPI void e_client_zone_set(E_Client *ec, E_Zone *zone);
|
||||||
|
EAPI void e_client_geometry_get(E_Client *ec, int *x, int *y, int *w, int *h);
|
||||||
|
EAPI E_Client *e_client_above_get(const E_Client *ec);
|
||||||
|
EAPI E_Client *e_client_below_get(const E_Client *ec);
|
||||||
|
EAPI E_Client *e_client_bottom_get(const E_Comp *c);
|
||||||
|
EAPI E_Client *e_client_top_get(const E_Comp *c);
|
||||||
|
EAPI unsigned int e_clients_count(E_Comp *c);
|
||||||
|
EAPI void e_client_move_intercept_cb_set(E_Client *ec, E_Client_Move_Intercept_Cb cb);
|
||||||
|
EAPI E_Client_Hook *e_client_hook_add(E_Client_Hook_Point hookpoint, E_Client_Hook_Cb func, const void *data);
|
||||||
|
EAPI void e_client_hook_del(E_Client_Hook *ch);
|
||||||
|
EAPI void e_client_focus_latest_set(E_Client *ec);
|
||||||
|
EAPI void e_client_raise_latest_set(E_Client *ec);
|
||||||
|
EAPI Eina_Bool e_client_focus_track_enabled(void);
|
||||||
|
EAPI void e_client_focus_track_freeze(void);
|
||||||
|
EAPI void e_client_focus_track_thaw(void);
|
||||||
|
EAPI void e_client_focus_set_with_pointer(E_Client *ec);
|
||||||
|
EAPI void e_client_activate(E_Client *ec, Eina_Bool just_do_it);
|
||||||
|
EAPI E_Client *e_client_focused_get(void);
|
||||||
|
EAPI Eina_List *e_client_focus_stack_get(void);
|
||||||
|
EAPI Eina_List *e_client_raise_stack_get(void);
|
||||||
|
EAPI Eina_List *e_client_lost_windows_get(E_Zone *zone);
|
||||||
|
EAPI void e_client_shade(E_Client *ec, E_Direction dir);
|
||||||
|
EAPI void e_client_unshade(E_Client *ec, E_Direction dir);
|
||||||
|
EAPI void e_client_maximize(E_Client *ec, E_Maximize max);
|
||||||
|
EAPI void e_client_unmaximize(E_Client *ec, E_Maximize max);
|
||||||
|
EAPI void e_client_fullscreen(E_Client *ec, E_Fullscreen policy);
|
||||||
|
EAPI void e_client_unfullscreen(E_Client *ec);
|
||||||
|
EAPI void e_client_iconify(E_Client *ec);
|
||||||
|
EAPI void e_client_uniconify(E_Client *ec);
|
||||||
|
EAPI void e_client_stick(E_Client *ec);
|
||||||
|
EAPI void e_client_unstick(E_Client *ec);
|
||||||
|
EAPI void e_client_pinned_set(E_Client *ec, Eina_Bool set);
|
||||||
|
EAPI void e_client_comp_hidden_set(E_Client *ec, Eina_Bool hidden);
|
||||||
|
EAPI void e_client_act_move_keyboard(E_Client *ec);
|
||||||
|
EAPI void e_client_act_resize_keyboard(E_Client *ec);
|
||||||
|
EAPI void e_client_act_move_begin(E_Client *ec, E_Binding_Event_Mouse_Button *ev);
|
||||||
|
EAPI void e_client_act_move_end(E_Client *ec, E_Binding_Event_Mouse_Button *ev EINA_UNUSED);
|
||||||
|
EAPI void e_client_act_resize_begin(E_Client *ec, E_Binding_Event_Mouse_Button *ev);
|
||||||
|
EAPI void e_client_act_resize_end(E_Client *ec, E_Binding_Event_Mouse_Button *ev EINA_UNUSED);
|
||||||
|
EAPI void e_client_act_menu_begin(E_Client *ec, E_Binding_Event_Mouse_Button *ev, int key);
|
||||||
|
EAPI void e_client_act_close_begin(E_Client *ec);
|
||||||
|
EAPI void e_client_act_kill_begin(E_Client *ec);
|
||||||
|
EAPI Evas_Object *e_client_icon_add(E_Client *ec, Evas *evas);
|
||||||
|
EAPI void e_client_ping(E_Client *cw);
|
||||||
|
EAPI void e_client_move_cancel(void);
|
||||||
|
EAPI void e_client_resize_cancel(void);
|
||||||
|
EAPI Eina_Bool e_client_resize_begin(E_Client *ec);
|
||||||
|
EAPI void e_client_frame_recalc(E_Client *ec);
|
||||||
|
EAPI void e_client_signal_move_begin(E_Client *ec, const char *sig, const char *src EINA_UNUSED);
|
||||||
|
EAPI void e_client_signal_move_end(E_Client *ec, const char *sig EINA_UNUSED, const char *src EINA_UNUSED);
|
||||||
|
EAPI void e_client_signal_resize_begin(E_Client *ec, const char *dir, const char *sig, const char *src EINA_UNUSED);
|
||||||
|
EAPI void e_client_signal_resize_end(E_Client *ec, const char *dir EINA_UNUSED, const char *sig EINA_UNUSED, const char *src EINA_UNUSED);
|
||||||
|
EAPI void e_client_resize_limit(E_Client *ec, int *w, int *h);
|
||||||
|
EAPI E_Client *e_client_under_pointer_get(E_Desk *desk, E_Client *exclude);
|
||||||
|
EAPI int e_client_pointer_warp_to_center_now(E_Client *ec);
|
||||||
|
EAPI int e_client_pointer_warp_to_center(E_Client *ec);
|
||||||
|
EAPI void e_client_redirected_set(E_Client *ec, Eina_Bool set);
|
||||||
|
EAPI Eina_Stringshare *e_client_name_get(const E_Client *ec);
|
||||||
|
EAPI Eina_Bool e_client_util_is_stacking(const E_Client *ec);
|
||||||
|
#include "e_client.x"
|
||||||
|
#endif
|
|
@ -0,0 +1,98 @@
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Move window to coordinates that do not account client decorations yet.
|
||||||
|
*
|
||||||
|
* This call will consider given position does not account client
|
||||||
|
* decoration, so these values (e_comp_object_frame) will be
|
||||||
|
* accounted automatically. This is specially useful when it is a new
|
||||||
|
* client and has not be evaluated yet, in this case
|
||||||
|
* the frame will be zeroed and no information is known. It
|
||||||
|
* will mark pending requests so client will be accounted on
|
||||||
|
* evalutation phase.
|
||||||
|
*
|
||||||
|
* @parm x horizontal position to place window.
|
||||||
|
* @parm y vertical position to place window.
|
||||||
|
*
|
||||||
|
* @see e_client_move()
|
||||||
|
*/
|
||||||
|
static inline void
|
||||||
|
e_client_util_move_without_frame(E_Client *ec, int x, int y)
|
||||||
|
{
|
||||||
|
e_comp_object_frame_xy_adjust(ec->frame, x, y, &x, &y);
|
||||||
|
evas_object_move(ec->frame, x, y);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Resize window to values that do not account client decorations yet.
|
||||||
|
*
|
||||||
|
* This call will consider given size does not account client
|
||||||
|
* decoration, so these values (e_comp_object_frame) will be
|
||||||
|
* accounted automatically. This is specially useful when it is a new
|
||||||
|
* client and has not be evaluated yet, in this case
|
||||||
|
* e_comp_object_frame will be zeroed and no information is known. It
|
||||||
|
* will mark pending requests so client will be accounted on
|
||||||
|
* evalutation phase.
|
||||||
|
*
|
||||||
|
* @parm w horizontal window size.
|
||||||
|
* @parm h vertical window size.
|
||||||
|
*
|
||||||
|
* @see e_client_resize()
|
||||||
|
*/
|
||||||
|
static inline void
|
||||||
|
e_client_util_resize_without_frame(E_Client *ec, int w, int h)
|
||||||
|
{
|
||||||
|
e_comp_object_frame_wh_adjust(ec->frame, w, h, &w, &h);
|
||||||
|
evas_object_resize(ec->frame, w, h);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Move and resize window to values that do not account client decorations yet.
|
||||||
|
*
|
||||||
|
* This call will consider given values already accounts client
|
||||||
|
* decorations, so it will not be considered later. This will just
|
||||||
|
* work properly with clients that have being evaluated and client
|
||||||
|
* decorations are known (e_comp_object_frame).
|
||||||
|
*
|
||||||
|
* @parm x horizontal position to place window.
|
||||||
|
* @parm y vertical position to place window.
|
||||||
|
* @parm w horizontal window size.
|
||||||
|
* @parm h vertical window size.
|
||||||
|
*
|
||||||
|
* @see e_client_move_resize()
|
||||||
|
*/
|
||||||
|
static inline void
|
||||||
|
e_client_util_move_resize_without_frame(E_Client *ec, int x, int y, int w, int h)
|
||||||
|
{
|
||||||
|
e_client_util_move_without_frame(ec, x, y);
|
||||||
|
e_client_util_resize_without_frame(ec, w, h);
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline Eina_Bool
|
||||||
|
e_client_util_ignored_get(const E_Client *ec)
|
||||||
|
{
|
||||||
|
return ec->override || ec->input_only || ec->ignored;
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline Eina_Bool
|
||||||
|
e_client_util_desk_visible(const E_Client *ec, const E_Desk *desk)
|
||||||
|
{
|
||||||
|
return ec->sticky || (ec->desk == desk);
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline Ecore_Window
|
||||||
|
e_client_util_pwin_get(const E_Client *ec)
|
||||||
|
{
|
||||||
|
return e_pixmap_parent_window_get(ec->pixmap);
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline Ecore_Window
|
||||||
|
e_client_util_win_get(const E_Client *ec)
|
||||||
|
{
|
||||||
|
return e_pixmap_window_get(ec->pixmap);
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline Eina_Bool
|
||||||
|
e_client_resizing_get(const E_Client *ec)
|
||||||
|
{
|
||||||
|
return (ec->resize_mode != E_POINTER_RESIZE_NONE);
|
||||||
|
}
|
|
@ -9,12 +9,12 @@ static void _e_color_dialog_cb_csel_change(void *data, Evas_Object *obj);
|
||||||
/**
|
/**
|
||||||
* Create a color selector dialog.
|
* Create a color selector dialog.
|
||||||
*
|
*
|
||||||
* @param con container to display on
|
* @param c compositor to display on
|
||||||
* @param color color to initialize to (or NULL for black).
|
* @param color color to initialize to (or NULL for black).
|
||||||
* @param alpha_enabled if set, uses alpha and let user edit it.
|
* @param alpha_enabled if set, uses alpha and let user edit it.
|
||||||
*/
|
*/
|
||||||
E_Color_Dialog *
|
E_Color_Dialog *
|
||||||
e_color_dialog_new(E_Container *con, const E_Color *color, Eina_Bool alpha_enabled)
|
e_color_dialog_new(E_Comp *c, const E_Color *color, Eina_Bool alpha_enabled)
|
||||||
{
|
{
|
||||||
E_Color_Dialog *dia;
|
E_Color_Dialog *dia;
|
||||||
Evas_Object *o;
|
Evas_Object *o;
|
||||||
|
@ -22,7 +22,7 @@ e_color_dialog_new(E_Container *con, const E_Color *color, Eina_Bool alpha_enabl
|
||||||
|
|
||||||
dia = E_OBJECT_ALLOC(E_Color_Dialog, E_COLOR_DIALOG_TYPE, _e_color_dialog_free);
|
dia = E_OBJECT_ALLOC(E_Color_Dialog, E_COLOR_DIALOG_TYPE, _e_color_dialog_free);
|
||||||
if (!dia) return NULL;
|
if (!dia) return NULL;
|
||||||
dia->dia = e_dialog_new(con, "E", "_color_dialog");
|
dia->dia = e_dialog_new(c, "E", "_color_dialog");
|
||||||
e_dialog_title_set(dia->dia, _("Color Selector"));
|
e_dialog_title_set(dia->dia, _("Color Selector"));
|
||||||
|
|
||||||
dia->color = calloc(1, sizeof(E_Color));
|
dia->color = calloc(1, sizeof(E_Color));
|
||||||
|
|
|
@ -12,7 +12,6 @@ struct _E_Color_Dialog
|
||||||
{
|
{
|
||||||
E_Object e_obj_inherit;
|
E_Object e_obj_inherit;
|
||||||
|
|
||||||
E_Container *con;
|
|
||||||
E_Dialog *dia;
|
E_Dialog *dia;
|
||||||
|
|
||||||
E_Color *color, *initial;
|
E_Color *color, *initial;
|
||||||
|
@ -25,7 +24,7 @@ struct _E_Color_Dialog
|
||||||
void *change_data;
|
void *change_data;
|
||||||
};
|
};
|
||||||
|
|
||||||
EAPI E_Color_Dialog *e_color_dialog_new (E_Container *con, const E_Color *initial_color, Eina_Bool alpha_enabled);
|
EAPI E_Color_Dialog *e_color_dialog_new (E_Comp *c, const E_Color *initial_color, Eina_Bool alpha_enabled);
|
||||||
EAPI void e_color_dialog_show (E_Color_Dialog *dia);
|
EAPI void e_color_dialog_show (E_Color_Dialog *dia);
|
||||||
EAPI void e_color_dialog_title_set (E_Color_Dialog *dia, const char *title);
|
EAPI void e_color_dialog_title_set (E_Color_Dialog *dia, const char *title);
|
||||||
|
|
||||||
|
|
5246
src/bin/e_comp.c
5246
src/bin/e_comp.c
File diff suppressed because it is too large
Load Diff
346
src/bin/e_comp.h
346
src/bin/e_comp.h
|
@ -1,210 +1,130 @@
|
||||||
#ifdef E_TYPEDEFS
|
#ifdef E_TYPEDEFS
|
||||||
typedef struct _E_Comp E_Comp;
|
typedef struct _E_Comp E_Comp;
|
||||||
typedef struct _E_Comp_Win E_Comp_Win;
|
typedef struct _E_Comp_Data E_Comp_Data;
|
||||||
typedef struct _E_Comp_Zone E_Comp_Zone;
|
typedef struct _E_Comp_Client_Data E_Comp_Client_Data;
|
||||||
typedef struct E_Event_Comp E_Event_Comp;
|
typedef struct _E_Comp_Demo_Style_Item E_Comp_Demo_Style_Item;
|
||||||
|
|
||||||
typedef enum
|
#define E_COMP_TYPE (int) 0xE0b01003
|
||||||
{
|
|
||||||
E_COMP_CANVAS_LAYER_BOTTOM = -100,
|
#define E_LAYER_COUNT 19
|
||||||
E_COMP_CANVAS_LAYER_BG = -1, // zone bg stuff
|
#define E_CLIENT_LAYER_COUNT 11
|
||||||
E_COMP_CANVAS_LAYER_DESKTOP = 0, // desktop objects: fileman, gadgets, shelves
|
|
||||||
E_COMP_CANVAS_LAYER_DESKTOP_TOP = 10, // raised desktop objects: gadgets, shelves
|
|
||||||
E_COMP_CANVAS_LAYER_LAYOUT = 100, // should be nothing else on this layer
|
|
||||||
E_COMP_CANVAS_LAYER_POPUP = 999, // popups
|
|
||||||
E_COMP_CANVAS_LAYER_MENU = 5000, // menus
|
|
||||||
E_COMP_CANVAS_LAYER_DESKLOCK = 9999, // desklock
|
|
||||||
E_COMP_CANVAS_LAYER_MAX = 32767 // EVAS_LAYER_MAX
|
|
||||||
} E_Comp_Canvas_Layer;
|
|
||||||
|
|
||||||
typedef enum _E_Layer
|
typedef enum _E_Layer
|
||||||
{
|
{
|
||||||
E_LAYER_DESKTOP = 0,
|
E_LAYER_BOTTOM = -100,
|
||||||
E_LAYER_BELOW = 50,
|
E_LAYER_BG = -1, // zone bg stuff
|
||||||
E_LAYER_NORMAL = 100,
|
E_LAYER_DESKTOP = 0, // desktop objects: fileman, gadgets, shelves
|
||||||
E_LAYER_ABOVE = 150,
|
E_LAYER_DESKTOP_TOP = 10, // raised desktop objects: gadgets
|
||||||
E_LAYER_EDGE = 200,
|
E_LAYER_CLIENT_DESKTOP = 100, //shelves
|
||||||
E_LAYER_FULLSCREEN = 250,
|
E_LAYER_CLIENT_BELOW = 150,
|
||||||
E_LAYER_EDGE_FULLSCREEN = 300,
|
E_LAYER_CLIENT_NORMAL = 200,
|
||||||
E_LAYER_POPUP = 300,
|
E_LAYER_CLIENT_ABOVE = 250,
|
||||||
E_LAYER_TOP = 350,
|
E_LAYER_CLIENT_EDGE = 300,
|
||||||
E_LAYER_DRAG = 400,
|
E_LAYER_CLIENT_FULLSCREEN = 350,
|
||||||
E_LAYER_PRIO = 450
|
E_LAYER_CLIENT_EDGE_FULLSCREEN = 400,
|
||||||
|
E_LAYER_CLIENT_POPUP = 450,
|
||||||
|
E_LAYER_CLIENT_TOP = 500,
|
||||||
|
E_LAYER_CLIENT_DRAG = 550,
|
||||||
|
E_LAYER_CLIENT_PRIO = 600,
|
||||||
|
E_LAYER_POPUP = 999, // popups
|
||||||
|
E_LAYER_MENU = 5000, // menus
|
||||||
|
E_LAYER_DESKLOCK = 9999, // desklock
|
||||||
|
E_LAYER_MAX = 32767 // EVAS_LAYER_MAX
|
||||||
} E_Layer;
|
} E_Layer;
|
||||||
|
|
||||||
typedef enum
|
|
||||||
{
|
|
||||||
E_COMP_CANVAS_STACK_UNDER = -1,
|
|
||||||
E_COMP_CANVAS_STACK_NONE = 0,
|
|
||||||
E_COMP_CANVAS_STACK_ABOVE = 1
|
|
||||||
} E_Comp_Canvas_Stack;
|
|
||||||
|
|
||||||
#else
|
#else
|
||||||
#ifndef E_MOD_COMP_H
|
#ifndef E_MOD_COMP_H
|
||||||
#define E_MOD_COMP_H
|
#define E_MOD_COMP_H
|
||||||
|
|
||||||
# include "e_comp_cfdata.h"
|
# include "e_comp_cfdata.h"
|
||||||
# include "e_comp_render_update.h"
|
|
||||||
|
|
||||||
|
|
||||||
struct _E_Comp
|
struct _E_Comp
|
||||||
{
|
{
|
||||||
Ecore_X_Window win; // input overlay
|
E_Object e_obj_inherit;
|
||||||
|
|
||||||
|
Ecore_Window win; // input overlay
|
||||||
Ecore_Evas *ee;
|
Ecore_Evas *ee;
|
||||||
Ecore_X_Window ee_win;
|
Ecore_Window ee_win;
|
||||||
Evas *evas;
|
Evas *evas;
|
||||||
Evas_Object *layout;
|
Evas_Object *bg_blank_object;
|
||||||
Eina_List *zones;
|
Eina_List *zones;
|
||||||
E_Manager *man;
|
E_Manager *man;
|
||||||
E_Pointer *pointer;
|
E_Pointer *pointer;
|
||||||
|
Eina_List *clients;
|
||||||
|
unsigned int new_clients;
|
||||||
|
|
||||||
|
E_Comp_Data *comp_data;
|
||||||
|
E_Pixmap_Type comp_type; //for determining X/Wayland/
|
||||||
|
|
||||||
|
unsigned int num;
|
||||||
|
Eina_Stringshare *name;
|
||||||
|
struct {
|
||||||
|
Ecore_Window win;
|
||||||
|
Evas_Object *obj;
|
||||||
|
//Eina_Inlist *objs; /* E_Comp_Object; NOT to be exposed; seems pointless? */
|
||||||
|
Eina_Inlist *clients; /* E_Client, bottom to top */
|
||||||
|
unsigned int clients_count;
|
||||||
|
} layers[E_LAYER_COUNT];
|
||||||
|
|
||||||
|
struct
|
||||||
|
{
|
||||||
|
Evas_Object *rect;
|
||||||
|
Evas_Object *obj;
|
||||||
|
Ecore_Event_Handler *key_handler;
|
||||||
|
E_Comp_Object_Autoclose_Cb del_cb;
|
||||||
|
E_Comp_Object_Key_Cb key_cb;
|
||||||
|
void *data;
|
||||||
|
} autoclose;
|
||||||
|
|
||||||
Eina_List *debug_rects;
|
Eina_List *debug_rects;
|
||||||
Eina_List *ignore_wins;
|
Eina_List *ignore_wins;
|
||||||
|
|
||||||
Eina_Inlist *wins;
|
|
||||||
Eina_List *wins_list;
|
|
||||||
Eina_List *updates;
|
Eina_List *updates;
|
||||||
|
Eina_List *post_updates;
|
||||||
Ecore_Animator *render_animator;
|
Ecore_Animator *render_animator;
|
||||||
Ecore_Job *shape_job;
|
Ecore_Job *shape_job;
|
||||||
Ecore_Job *update_job;
|
Ecore_Job *update_job;
|
||||||
Ecore_Timer *new_up_timer;
|
|
||||||
Evas_Object *fps_bg;
|
Evas_Object *fps_bg;
|
||||||
Evas_Object *fps_fg;
|
Evas_Object *fps_fg;
|
||||||
Ecore_Job *screen_job;
|
Ecore_Job *screen_job;
|
||||||
Ecore_Timer *nocomp_delay_timer;
|
Ecore_Timer *nocomp_delay_timer;
|
||||||
Ecore_Timer *nocomp_override_timer;
|
Ecore_Timer *nocomp_override_timer;
|
||||||
int animating;
|
int animating;
|
||||||
int render_overflow;
|
|
||||||
double frametimes[122];
|
double frametimes[122];
|
||||||
int frameskip;
|
int frameskip;
|
||||||
|
|
||||||
int nocomp_override; //number of times nocomp override has been requested
|
int nocomp_override; //number of times nocomp override has been requested
|
||||||
Ecore_X_Window block_win;
|
Ecore_Window block_win;
|
||||||
int block_count; //number of times block window has been requested
|
int block_count; //number of times block window has been requested
|
||||||
|
|
||||||
Ecore_X_Window cm_selection;
|
Ecore_Window cm_selection; //FIXME: move to comp_x ?
|
||||||
|
|
||||||
|
int depth;
|
||||||
|
|
||||||
|
Ecore_Cb grab_cb;
|
||||||
|
Ecore_Cb bindings_grab_cb;
|
||||||
|
Ecore_Cb bindings_ungrab_cb;
|
||||||
|
|
||||||
Eina_Bool gl : 1;
|
Eina_Bool gl : 1;
|
||||||
Eina_Bool grabbed : 1;
|
Eina_Bool grabbed : 1;
|
||||||
Eina_Bool nocomp : 1;
|
Eina_Bool nocomp : 1;
|
||||||
Eina_Bool nocomp_want : 1;
|
Eina_Bool nocomp_want : 1;
|
||||||
Eina_Bool wins_invalid : 1;
|
|
||||||
Eina_Bool saver : 1;
|
Eina_Bool saver : 1;
|
||||||
|
Eina_Bool shape_queue_blocked : 1;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct _E_Comp_Zone
|
|
||||||
|
struct _E_Comp_Demo_Style_Item
|
||||||
{
|
{
|
||||||
E_Comp *comp;
|
Evas_Object *preview;
|
||||||
E_Zone *zone; // never deref - just use for handle cmp's
|
Evas_Object *frame;
|
||||||
Evas_Object *base;
|
Evas_Object *livethumb;
|
||||||
Evas_Object *over;
|
Evas_Object *layout;
|
||||||
int container_num;
|
Evas_Object *border;
|
||||||
int zone_num;
|
Evas_Object *client;
|
||||||
int x, y, w, h;
|
|
||||||
double bl;
|
|
||||||
Eina_Bool bloff;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
struct _E_Comp_Win
|
|
||||||
{
|
|
||||||
EINA_INLIST;
|
|
||||||
|
|
||||||
E_Comp *c; // parent compositor
|
|
||||||
Ecore_X_Window win; // raw window - for menus etc.
|
|
||||||
E_Container_Shape *shape;
|
|
||||||
E_Border *bd; // if its a border - later
|
|
||||||
E_Popup *pop; // if its a popup - later
|
|
||||||
E_Menu *menu; // if it is a menu - later
|
|
||||||
int x, y, w, h; // geometry
|
|
||||||
Eina_Rectangle hidden; // hidden geometry (used when its unmapped and re-instated on map)
|
|
||||||
int pw, ph; // pixmap w/h
|
|
||||||
int border; // border width
|
|
||||||
Ecore_X_Pixmap pixmap; // the compositing pixmap
|
|
||||||
Ecore_X_Damage damage; // damage region
|
|
||||||
Ecore_X_Visual vis; // window visual
|
|
||||||
Ecore_X_Colormap cmap; // colormap of window
|
|
||||||
int depth; // window depth
|
|
||||||
Evas_Object *obj; // composite object
|
|
||||||
Evas_Object *zoomobj; // zoomap
|
|
||||||
Evas_Object *shobj; // shadow object
|
|
||||||
Evas_Object *effect_obj; // effects object
|
|
||||||
E_Object *eobj; // internal e object
|
|
||||||
E_Comp_Win *cw_above; // comp win that should always be stacked above this one
|
|
||||||
Eina_List *stack_below; // list of objects to keep stacked below this one
|
|
||||||
Eina_List *obj_mirror; // extra mirror objects
|
|
||||||
Ecore_X_Image *xim; // x image - software fallback
|
|
||||||
E_Comp_Render_Update *up; // update handler
|
|
||||||
E_Object_Delfn *dfn; // delete function handle for objects being tracked
|
|
||||||
Ecore_Timer *update_timeout; // max time between damage and "done" event
|
|
||||||
Ecore_Timer *ready_timeout; // max time on show (new window draw) to wait for window contents to be ready if sync protocol not handled. this is fallback.
|
|
||||||
int dmg_updates; // num of damage event updates since a redirect
|
|
||||||
|
|
||||||
Ecore_X_Pixmap cache_pixmap; // the cached pixmap (1/nth the dimensions)
|
|
||||||
int cache_w, cache_h; // cached pixmap size
|
|
||||||
int update_count; // how many updates have happened to this win
|
|
||||||
double last_visible_time; // last time window was visible
|
|
||||||
double last_draw_time; // last time window was damaged
|
|
||||||
|
|
||||||
int pending_count; // pending event count
|
|
||||||
|
|
||||||
unsigned int opacity; // opacity set with _NET_WM_WINDOW_OPACITY
|
|
||||||
Ecore_Timer *opacity_set_timer; // timer for setting opacity in ecore-x to avoid roundtrips
|
|
||||||
|
|
||||||
char *title, *name, *clas, *role; // fetched for override-redirect windowa
|
|
||||||
Ecore_X_Window_Type primary_type; // fetched for override-redirect windowa
|
|
||||||
|
|
||||||
unsigned char misses; // number of sync misses
|
|
||||||
|
|
||||||
Eina_Bool delete_pending : 1; // delete pendig
|
|
||||||
Eina_Bool hidden_override : 1; // hidden override
|
|
||||||
Eina_Bool animating : 1; // it's busy animating - defer hides/dels
|
|
||||||
Eina_Bool force : 1; // force del/hide even if animating
|
|
||||||
Eina_Bool defer_hide : 1; // flag to get hide to work on deferred hide
|
|
||||||
Eina_Bool delete_me : 1; // delete me!
|
|
||||||
Eina_Bool visible : 1; // is visible
|
|
||||||
Eina_Bool input_only : 1; // is input_only
|
|
||||||
|
|
||||||
Eina_Bool override : 1; // is override-redirect
|
|
||||||
Eina_Bool argb : 1; // is argb
|
|
||||||
Eina_Bool shaped : 1; // is shaped
|
|
||||||
Eina_Bool update : 1; // has updates to fetch
|
|
||||||
Eina_Bool redirected : 1; // has updates to fetch
|
|
||||||
Eina_Bool shape_changed : 1; // shape changed
|
|
||||||
Eina_Bool native : 1; // native
|
|
||||||
Eina_Bool drawme : 1; // drawme flag fo syncing rendering
|
|
||||||
|
|
||||||
Eina_Bool invalid : 1; // invalid depth used - just use as marker
|
|
||||||
Eina_Bool nocomp : 1; // nocomp applied
|
|
||||||
Eina_Bool nocomp_need_update : 1; // nocomp in effect, but this window updated while in nocomp mode
|
|
||||||
Eina_Bool needpix : 1; // need new pixmap
|
|
||||||
Eina_Bool needxim : 1; // need new xim
|
|
||||||
Eina_Bool real_hid : 1; // last hide was a real window unmap
|
|
||||||
Eina_Bool inhash : 1; // is in the windows hash
|
|
||||||
Eina_Bool show_ready : 1; // is this window ready for its first show
|
|
||||||
Eina_Bool geom_update : 1; // window needs geometry updated
|
|
||||||
|
|
||||||
Eina_Bool show_anim : 1; // ran show animation
|
|
||||||
|
|
||||||
Eina_Bool bg_win : 1; // window is the bg win for a container
|
|
||||||
Eina_Bool free_shape : 1; // container shape needs to be freed
|
|
||||||
Eina_Bool real_obj : 1; // real object (for dummy comp wins)
|
|
||||||
Eina_Bool not_in_layout : 1; // object is a dummy not in comp layout
|
|
||||||
|
|
||||||
Eina_Bool effect_clip : 1; //effect_obj is clipped
|
|
||||||
Eina_Bool effect_clip_able : 1; //effect_obj will be clipped for effects
|
|
||||||
};
|
|
||||||
|
|
||||||
struct E_Event_Comp
|
|
||||||
{
|
|
||||||
E_Comp_Win *cw;
|
|
||||||
};
|
|
||||||
|
|
||||||
extern EAPI int E_EVENT_COMP_SOURCE_VISIBILITY;
|
|
||||||
extern EAPI int E_EVENT_COMP_SOURCE_ADD;
|
|
||||||
extern EAPI int E_EVENT_COMP_SOURCE_DEL;
|
|
||||||
extern EAPI int E_EVENT_COMP_SOURCE_CONFIGURE;
|
|
||||||
extern EAPI int E_EVENT_COMP_SOURCE_STACK;
|
|
||||||
|
|
||||||
typedef enum
|
typedef enum
|
||||||
{
|
{
|
||||||
E_COMP_ENGINE_NONE = 0,
|
E_COMP_ENGINE_NONE = 0,
|
||||||
|
@ -213,67 +133,40 @@ typedef enum
|
||||||
} E_Comp_Engine;
|
} E_Comp_Engine;
|
||||||
|
|
||||||
EINTERN Eina_Bool e_comp_init(void);
|
EINTERN Eina_Bool e_comp_init(void);
|
||||||
EINTERN int e_comp_shutdown(void);
|
EAPI E_Comp *e_comp_new(void);
|
||||||
EINTERN Eina_Bool e_comp_manager_init(E_Manager *man);
|
|
||||||
|
|
||||||
EAPI const Eina_List *e_comp_list(void);
|
|
||||||
|
|
||||||
EAPI int e_comp_internal_save(void);
|
EAPI int e_comp_internal_save(void);
|
||||||
|
EINTERN int e_comp_shutdown(void);
|
||||||
|
EAPI void e_comp_render_queue(E_Comp *c);
|
||||||
|
EAPI void e_comp_shape_queue(E_Comp *c);
|
||||||
|
EAPI void e_comp_shape_queue_block(E_Comp *c, Eina_Bool block);
|
||||||
EAPI E_Comp_Config *e_comp_config_get(void);
|
EAPI E_Comp_Config *e_comp_config_get(void);
|
||||||
|
EAPI const Eina_List *e_comp_list(void);
|
||||||
EAPI void e_comp_shadows_reset(void);
|
EAPI void e_comp_shadows_reset(void);
|
||||||
|
EAPI E_Comp *e_comp_get(const void *o);
|
||||||
EAPI void e_comp_block_window_add(void);
|
EAPI Ecore_Window e_comp_top_window_at_xy_get(E_Comp *c, Evas_Coord x, Evas_Coord y);
|
||||||
EAPI void e_comp_block_window_del(void);
|
EAPI void e_comp_util_wins_print(const E_Comp *c);
|
||||||
|
EAPI void e_comp_ignore_win_add(E_Pixmap_Type type, Ecore_Window win);
|
||||||
EAPI void e_comp_render_update(E_Comp *c);
|
EAPI void e_comp_ignore_win_del(E_Pixmap_Type type, Ecore_Window win);
|
||||||
EAPI void e_comp_zone_update(E_Comp_Zone *cz);
|
EAPI Eina_Bool e_comp_ignore_win_find(Ecore_Window win);
|
||||||
|
|
||||||
EAPI void e_comp_override_del(E_Comp *c);
|
EAPI void e_comp_override_del(E_Comp *c);
|
||||||
EAPI void e_comp_override_add(E_Comp *c);
|
EAPI void e_comp_override_add(E_Comp *c);
|
||||||
|
EAPI void e_comp_block_window_add(void);
|
||||||
EAPI void e_comp_win_effect_set(E_Comp_Win *cw, const char *effect);
|
EAPI void e_comp_block_window_del(void);
|
||||||
EAPI void e_comp_win_effect_params_set(E_Comp_Win *cw, int id, int *params, unsigned int count);
|
EAPI E_Comp *e_comp_find_by_window(Ecore_Window win);
|
||||||
EAPI void e_comp_win_effect_start(E_Comp_Win *cw, Edje_Signal_Cb end_cb, const void *end_data);
|
EAPI void e_comp_override_timed_pop(E_Comp *c);
|
||||||
EAPI void e_comp_win_effect_stop(E_Comp_Win *cw, Edje_Signal_Cb end_cb);
|
|
||||||
EAPI void e_comp_win_effect_clip(E_Comp_Win *cw);
|
|
||||||
EAPI void e_comp_win_effect_unclip(E_Comp_Win *cw);
|
|
||||||
|
|
||||||
EAPI E_Comp_Win *e_comp_win_find_client_win(Ecore_X_Window win);
|
|
||||||
EAPI E_Comp_Win *e_comp_win_find(Ecore_X_Window win);
|
|
||||||
EAPI const Eina_List *e_comp_win_list_get(E_Comp *c);
|
|
||||||
EAPI Evas_Object *e_comp_win_image_mirror_add(E_Comp_Win *cw);
|
|
||||||
EAPI void e_comp_win_hidden_set(E_Comp_Win *cw, Eina_Bool hidden);
|
|
||||||
EAPI void e_comp_win_opacity_set(E_Comp_Win *cw, unsigned int opacity);
|
|
||||||
|
|
||||||
EAPI E_Comp *e_comp_get(void *o);
|
|
||||||
EAPI void e_comp_populate(E_Comp *c);
|
|
||||||
|
|
||||||
EAPI Ecore_X_Window e_comp_top_window_at_xy_get(E_Comp *c, Evas_Coord x, Evas_Coord y, Eina_Bool vis, Ecore_X_Window *ignore, unsigned int ignore_num);
|
|
||||||
|
|
||||||
/* for injecting objects into the comp layout */
|
|
||||||
EAPI E_Comp_Win *e_comp_object_inject(E_Comp *c, Evas_Object *obj, E_Object *eobj, E_Layer layer);
|
|
||||||
/* for giving objects the comp theme and such without injecting into layout */
|
|
||||||
EAPI E_Comp_Win *e_comp_object_add(E_Comp *c, Evas_Object *obj, E_Object *eobj);
|
|
||||||
|
|
||||||
EAPI void e_comp_win_move(E_Comp_Win *cw, Evas_Coord x, Evas_Coord y);
|
|
||||||
EAPI void e_comp_win_resize(E_Comp_Win *cw, int w, int h);
|
|
||||||
EAPI void e_comp_win_moveresize(E_Comp_Win *cw, Evas_Coord x, Evas_Coord y, int w, int h);
|
|
||||||
EAPI void e_comp_win_hide(E_Comp_Win *cw);
|
|
||||||
EAPI void e_comp_win_show(E_Comp_Win *cw);
|
|
||||||
EAPI void e_comp_win_del(E_Comp_Win *cw);
|
|
||||||
EAPI void e_comp_win_reshadow(E_Comp_Win *cw);
|
|
||||||
|
|
||||||
EAPI void e_comp_ignore_win_add(Ecore_X_Window win);
|
|
||||||
|
|
||||||
#define E_LAYER_SET(obj, layer) e_comp_canvas_layer_set(obj, layer, 0, E_COMP_CANVAS_STACK_NONE)
|
|
||||||
#define E_LAYER_SET_UNDER(obj, layer) e_comp_canvas_layer_set(obj, layer, 0, E_COMP_CANVAS_STACK_UNDER)
|
|
||||||
#define E_LAYER_SET_ABOVE(obj, layer) e_comp_canvas_layer_set(obj, layer, 0, E_COMP_CANVAS_STACK_ABOVE)
|
|
||||||
#define E_LAYER_LAYOUT_ADD(obj, layer) e_comp_canvas_layer_set(obj, E_COMP_CANVAS_LAYER_LAYOUT, layer, E_COMP_CANVAS_STACK_NONE)
|
|
||||||
#define E_LAYER_LAYOUT_ADD_UNDER(obj, layer) e_comp_canvas_layer_set(obj, E_COMP_CANVAS_LAYER_LAYOUT, layer, E_COMP_CANVAS_STACK_UNDER)
|
|
||||||
#define E_LAYER_LAYOUT_ADD_ABOVE(obj, layer) e_comp_canvas_layer_set(obj, E_COMP_CANVAS_LAYER_LAYOUT, layer, E_COMP_CANVAS_STACK_ABOVE)
|
|
||||||
|
|
||||||
EAPI E_Comp_Win *e_comp_canvas_layer_set(Evas_Object *obj, E_Comp_Canvas_Layer comp_layer, E_Layer layer, E_Comp_Canvas_Stack stack);
|
|
||||||
EAPI unsigned int e_comp_e_object_layer_get(const E_Object *obj);
|
EAPI unsigned int e_comp_e_object_layer_get(const E_Object *obj);
|
||||||
|
EAPI Eina_Bool e_comp_grab_input(E_Comp *c, Eina_Bool mouse, Eina_Bool kbd);
|
||||||
|
EAPI void e_comp_ungrab_input(E_Comp *c, Eina_Bool mouse, Eina_Bool kbd);
|
||||||
|
EAPI void e_comp_gl_set(Eina_Bool set);
|
||||||
|
EAPI Eina_Bool e_comp_gl_get(void);
|
||||||
|
EAPI E_Comp *e_comp_evas_find(const Evas *e);
|
||||||
|
|
||||||
|
EAPI void e_comp_button_bindings_grab_all(void);
|
||||||
|
EAPI void e_comp_button_bindings_ungrab_all(void);
|
||||||
|
|
||||||
|
EINTERN Evas_Object *e_comp_style_selector_create(Evas *evas, const char **source);
|
||||||
|
EAPI E_Config_Dialog *e_int_config_comp(E_Comp *comp, const char *params);
|
||||||
|
EAPI E_Config_Dialog *e_int_config_comp_match(E_Comp *comp, const char *params);
|
||||||
|
|
||||||
static inline E_Comp *
|
static inline E_Comp *
|
||||||
e_comp_util_evas_object_comp_get(Evas_Object *obj)
|
e_comp_util_evas_object_comp_get(Evas_Object *obj)
|
||||||
|
@ -282,35 +175,16 @@ e_comp_util_evas_object_comp_get(Evas_Object *obj)
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline Eina_Bool
|
static inline Eina_Bool
|
||||||
e_comp_evas_exists(void *o)
|
e_comp_util_client_is_fullscreen(const E_Client *ec)
|
||||||
{
|
{
|
||||||
E_Comp *c;
|
if ((!ec->visible) || (ec->input_only))
|
||||||
|
return EINA_FALSE;
|
||||||
EINA_SAFETY_ON_NULL_RETURN_VAL(o, EINA_FALSE);
|
return ((ec->client.x == 0) && (ec->client.y == 0) &&
|
||||||
c = e_comp_get(o);
|
((ec->client.w) >= ec->comp->man->w) &&
|
||||||
return c ? !!c->evas : EINA_FALSE;
|
((ec->client.h) >= ec->comp->man->h) &&
|
||||||
|
(!ec->argb) && (!ec->shaped)
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline void
|
|
||||||
e_comp_win_ignore_events_set(E_Comp_Win *cw, Eina_Bool ignore)
|
|
||||||
{
|
|
||||||
EINA_SAFETY_ON_NULL_RETURN(cw);
|
|
||||||
ignore = !!ignore;
|
|
||||||
evas_object_pass_events_set(cw->effect_obj, ignore);
|
|
||||||
}
|
|
||||||
|
|
||||||
static inline unsigned int
|
|
||||||
e_comp_e_object_layer_effective_get(const E_Object *obj)
|
|
||||||
{
|
|
||||||
unsigned int layer;
|
|
||||||
|
|
||||||
layer = e_comp_e_object_layer_get(obj);
|
|
||||||
if ((layer > E_COMP_CANVAS_LAYER_LAYOUT) && (layer < E_COMP_CANVAS_LAYER_POPUP))
|
|
||||||
layer = E_COMP_CANVAS_LAYER_LAYOUT;
|
|
||||||
return layer;
|
|
||||||
}
|
|
||||||
|
|
||||||
EAPI void e_comp_util_wins_print(const E_Comp *c);
|
|
||||||
EAPI void e_comp_shape_queue(E_Comp *c);
|
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -0,0 +1,579 @@
|
||||||
|
#include "e.h"
|
||||||
|
|
||||||
|
static void
|
||||||
|
_e_comp_canvas_event_compositor_resize_free(void *data EINA_UNUSED, void *event)
|
||||||
|
{
|
||||||
|
E_Event_Compositor_Resize *ev = event;
|
||||||
|
|
||||||
|
e_object_unref(E_OBJECT(ev->comp));
|
||||||
|
free(ev);
|
||||||
|
}
|
||||||
|
|
||||||
|
///////////////////////////////////
|
||||||
|
|
||||||
|
static void
|
||||||
|
_e_comp_canvas_cb_first_frame(void *data, Evas *e, void *event_info EINA_UNUSED)
|
||||||
|
{
|
||||||
|
E_Comp *c = data;
|
||||||
|
double now = ecore_time_get();
|
||||||
|
|
||||||
|
switch (e_first_frame[0])
|
||||||
|
{
|
||||||
|
case 'A': abort();
|
||||||
|
case 'E':
|
||||||
|
case 'D': exit(-1);
|
||||||
|
case 'T': fprintf(stderr, "Startup time: '%f' - '%f' = '%f'\n", now, e_first_frame_start_time, now - e_first_frame_start_time);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
evas_event_callback_del_full(e, EVAS_CALLBACK_RENDER_POST, _e_comp_canvas_cb_first_frame, c);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
_e_comp_canvas_render_post(void *data, Evas *e EINA_UNUSED, void *event_info EINA_UNUSED)
|
||||||
|
{
|
||||||
|
E_Comp *c = data;
|
||||||
|
E_Client *ec;
|
||||||
|
//Evas_Event_Render_Post *ev = event_info;
|
||||||
|
//Eina_List *l;
|
||||||
|
//Eina_Rectangle *r;
|
||||||
|
|
||||||
|
//if (ev)
|
||||||
|
//{
|
||||||
|
//EINA_LIST_FOREACH(ev->updated_area, l, r)
|
||||||
|
//INF("POST RENDER: %d,%d %dx%d", r->x, r->y, r->w, r->h);
|
||||||
|
//}
|
||||||
|
EINA_LIST_FREE(c->post_updates, ec)
|
||||||
|
{
|
||||||
|
//INF("POST %p", ec);
|
||||||
|
if (!e_object_is_del(E_OBJECT(ec)))
|
||||||
|
e_pixmap_image_clear(ec->pixmap, 1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
///////////////////////////////////
|
||||||
|
|
||||||
|
static void
|
||||||
|
_e_comp_canvas_cb_mouse_in(E_Comp *c EINA_UNUSED, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)
|
||||||
|
{
|
||||||
|
E_Client *ec;
|
||||||
|
|
||||||
|
if (e_client_action_get()) return;
|
||||||
|
ec = e_client_focused_get();
|
||||||
|
if (ec && (!ec->border_menu)) e_focus_event_mouse_out(ec);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
_e_comp_canvas_cb_mouse_down(E_Comp *c, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info)
|
||||||
|
{
|
||||||
|
if (e_client_action_get()) return;
|
||||||
|
e_bindings_mouse_down_evas_event_handle(E_BINDING_CONTEXT_COMPOSITOR, E_OBJECT(c), event_info);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
_e_comp_canvas_cb_mouse_up(E_Comp *c, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info)
|
||||||
|
{
|
||||||
|
if (e_client_action_get()) return;
|
||||||
|
e_bindings_mouse_up_evas_event_handle(E_BINDING_CONTEXT_COMPOSITOR, E_OBJECT(c), event_info);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
_e_comp_canvas_cb_mouse_wheel(E_Comp *c, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info)
|
||||||
|
{
|
||||||
|
if (e_client_action_get()) return;
|
||||||
|
e_bindings_wheel_evas_event_handle(E_BINDING_CONTEXT_COMPOSITOR, E_OBJECT(c), event_info);
|
||||||
|
}
|
||||||
|
|
||||||
|
////////////////////////////////////
|
||||||
|
|
||||||
|
static int
|
||||||
|
_e_comp_canvas_cb_zone_sort(const void *data1, const void *data2)
|
||||||
|
{
|
||||||
|
const E_Zone *z1 = data1, *z2 = data2;
|
||||||
|
|
||||||
|
return z2->num - z1->num;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
EAPI Eina_Bool
|
||||||
|
e_comp_canvas_init(E_Comp *c)
|
||||||
|
{
|
||||||
|
Evas_Object *o;
|
||||||
|
Eina_List *screens;
|
||||||
|
unsigned int layer;
|
||||||
|
|
||||||
|
c->evas = ecore_evas_get(c->ee);
|
||||||
|
|
||||||
|
if (e_first_frame)
|
||||||
|
evas_event_callback_add(c->evas, EVAS_CALLBACK_RENDER_POST, _e_comp_canvas_cb_first_frame, c);
|
||||||
|
ecore_evas_data_set(c->ee, "comp", c);
|
||||||
|
o = evas_object_rectangle_add(c->evas);
|
||||||
|
c->bg_blank_object = o;
|
||||||
|
evas_object_layer_set(o, E_LAYER_BOTTOM);
|
||||||
|
evas_object_move(o, 0, 0);
|
||||||
|
evas_object_resize(o, c->man->w, c->man->h);
|
||||||
|
evas_object_color_set(o, 255, 255, 255, 255);
|
||||||
|
evas_object_name_set(o, "comp->bg_blank_object");
|
||||||
|
evas_object_data_set(o, "e_comp", c);
|
||||||
|
evas_object_event_callback_add(o, EVAS_CALLBACK_MOUSE_DOWN, (Evas_Object_Event_Cb)_e_comp_canvas_cb_mouse_down, c);
|
||||||
|
evas_object_event_callback_add(o, EVAS_CALLBACK_MOUSE_UP, (Evas_Object_Event_Cb)_e_comp_canvas_cb_mouse_up, c);
|
||||||
|
evas_object_event_callback_add(o, EVAS_CALLBACK_MOUSE_IN, (Evas_Object_Event_Cb)_e_comp_canvas_cb_mouse_in, c);
|
||||||
|
evas_object_event_callback_add(o, EVAS_CALLBACK_MOUSE_WHEEL, (Evas_Object_Event_Cb)_e_comp_canvas_cb_mouse_wheel, c);
|
||||||
|
evas_object_show(o);
|
||||||
|
|
||||||
|
ecore_evas_name_class_set(c->ee, "E", "Comp_EE");
|
||||||
|
// ecore_evas_manual_render_set(c->ee, conf->lock_fps);
|
||||||
|
ecore_evas_show(c->ee);
|
||||||
|
|
||||||
|
evas_event_callback_add(c->evas, EVAS_CALLBACK_RENDER_POST, _e_comp_canvas_render_post, c);
|
||||||
|
|
||||||
|
c->ee_win = ecore_evas_window_get(c->ee);
|
||||||
|
|
||||||
|
for (layer = 0; layer <= e_comp_canvas_layer_map(E_LAYER_MAX); layer++)
|
||||||
|
{
|
||||||
|
Evas_Object *o2;
|
||||||
|
|
||||||
|
/* client layers have actual X windows backing them, so we wait */
|
||||||
|
if (e_comp_canvas_client_layer_map(e_comp_canvas_layer_map_to(layer)) != 9999)
|
||||||
|
continue;
|
||||||
|
o2 = c->layers[layer].obj = evas_object_rectangle_add(c->evas);
|
||||||
|
evas_object_layer_set(o2, e_comp_canvas_layer_map_to(layer));
|
||||||
|
evas_object_name_set(o2, "layer_obj");
|
||||||
|
}
|
||||||
|
|
||||||
|
screens = (Eina_List *)e_xinerama_screens_get();
|
||||||
|
if (screens)
|
||||||
|
{
|
||||||
|
E_Screen *scr;
|
||||||
|
Eina_List *l;
|
||||||
|
|
||||||
|
EINA_LIST_FOREACH(screens, l, scr)
|
||||||
|
{
|
||||||
|
e_zone_new(c, scr->screen, scr->escreen, scr->x, scr->y, scr->w, scr->h);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
e_zone_new(c, 0, 0, 0, 0, c->man->w, c->man->h);
|
||||||
|
|
||||||
|
return EINA_TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
EINTERN void
|
||||||
|
e_comp_canvas_clear(E_Comp *c)
|
||||||
|
{
|
||||||
|
evas_event_freeze(c->evas);
|
||||||
|
edje_freeze();
|
||||||
|
|
||||||
|
E_FREE_FUNC(c->fps_fg, evas_object_del);
|
||||||
|
E_FREE_FUNC(c->fps_bg, evas_object_del);
|
||||||
|
E_FREE_FUNC(c->autoclose.rect, evas_object_del);
|
||||||
|
E_FREE_FUNC(c->shape_job, ecore_job_del);
|
||||||
|
E_FREE_FUNC(c->pointer, e_object_del);
|
||||||
|
}
|
||||||
|
|
||||||
|
//////////////////////////////////////////////
|
||||||
|
|
||||||
|
EAPI void
|
||||||
|
e_comp_all_freeze(void)
|
||||||
|
{
|
||||||
|
Eina_List *l;
|
||||||
|
E_Manager *man;
|
||||||
|
|
||||||
|
EINA_LIST_FOREACH(e_manager_list(), l, man)
|
||||||
|
evas_event_freeze(man->comp->evas);
|
||||||
|
}
|
||||||
|
|
||||||
|
EAPI void
|
||||||
|
e_comp_all_thaw(void)
|
||||||
|
{
|
||||||
|
Eina_List *l;
|
||||||
|
E_Manager *man;
|
||||||
|
|
||||||
|
EINA_LIST_FOREACH(e_manager_list(), l, man)
|
||||||
|
evas_event_thaw(man->comp->evas);
|
||||||
|
}
|
||||||
|
|
||||||
|
EAPI E_Zone *
|
||||||
|
e_comp_zone_xy_get(const E_Comp *c, Evas_Coord x, Evas_Coord y)
|
||||||
|
{
|
||||||
|
const Eina_List *l;
|
||||||
|
E_Zone *zone;
|
||||||
|
|
||||||
|
EINA_SAFETY_ON_NULL_RETURN_VAL(c, NULL);
|
||||||
|
EINA_LIST_FOREACH(c->zones, l, zone)
|
||||||
|
if (E_INSIDE(x, y, zone->x, zone->y, zone->w, zone->h)) return zone;
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
EAPI E_Zone *
|
||||||
|
e_comp_zone_number_get(E_Comp *c, int num)
|
||||||
|
{
|
||||||
|
Eina_List *l = NULL;
|
||||||
|
E_Zone *zone = NULL;
|
||||||
|
|
||||||
|
E_OBJECT_CHECK_RETURN(c, NULL);
|
||||||
|
E_OBJECT_TYPE_CHECK_RETURN(c, E_COMP_TYPE, NULL);
|
||||||
|
EINA_LIST_FOREACH(c->zones, l, zone)
|
||||||
|
{
|
||||||
|
if ((int)zone->num == num) return zone;
|
||||||
|
}
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
EAPI E_Zone *
|
||||||
|
e_comp_zone_id_get(E_Comp *c, int id)
|
||||||
|
{
|
||||||
|
Eina_List *l = NULL;
|
||||||
|
E_Zone *zone = NULL;
|
||||||
|
|
||||||
|
E_OBJECT_CHECK_RETURN(c, NULL);
|
||||||
|
E_OBJECT_TYPE_CHECK_RETURN(c, E_COMP_TYPE, NULL);
|
||||||
|
EINA_LIST_FOREACH(c->zones, l, zone)
|
||||||
|
{
|
||||||
|
if (zone->id == id) return zone;
|
||||||
|
}
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
EAPI E_Comp *
|
||||||
|
e_comp_number_get(unsigned int num)
|
||||||
|
{
|
||||||
|
const Eina_List *l;
|
||||||
|
E_Comp *c;
|
||||||
|
|
||||||
|
EINA_LIST_FOREACH(e_comp_list(), l, c)
|
||||||
|
if (c->num == num) return c;
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
EAPI E_Desk *
|
||||||
|
e_comp_desk_window_profile_get(E_Comp *c, const char *profile)
|
||||||
|
{
|
||||||
|
Eina_List *l = NULL;
|
||||||
|
E_Zone *zone = NULL;
|
||||||
|
int x, y;
|
||||||
|
|
||||||
|
E_OBJECT_CHECK_RETURN(c, NULL);
|
||||||
|
E_OBJECT_TYPE_CHECK_RETURN(c, E_COMP_TYPE, NULL);
|
||||||
|
EINA_SAFETY_ON_NULL_RETURN_VAL(profile, NULL);
|
||||||
|
|
||||||
|
EINA_LIST_FOREACH(c->zones, l, zone)
|
||||||
|
{
|
||||||
|
for (x = 0; x < zone->desk_x_count; x++)
|
||||||
|
{
|
||||||
|
for (y = 0; y < zone->desk_y_count; y++)
|
||||||
|
{
|
||||||
|
E_Desk *desk = e_desk_at_xy_get(zone, x, y);
|
||||||
|
if (!e_util_strcmp(desk->window_profile, profile))
|
||||||
|
return desk;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
EAPI void
|
||||||
|
e_comp_canvas_zone_update(E_Zone *zone)
|
||||||
|
{
|
||||||
|
Evas_Object *o;
|
||||||
|
const char *const over_styles[] =
|
||||||
|
{
|
||||||
|
"e/comp/screen/overlay/default",
|
||||||
|
"e/comp/screen/overlay/noeffects"
|
||||||
|
};
|
||||||
|
const char *const under_styles[] =
|
||||||
|
{
|
||||||
|
"e/comp/screen/base/default",
|
||||||
|
"e/comp/screen/base/noeffects"
|
||||||
|
};
|
||||||
|
E_Comp_Config *conf = e_comp_config_get();
|
||||||
|
|
||||||
|
if (zone->over && zone->base)
|
||||||
|
{
|
||||||
|
e_theme_edje_object_set(zone->base, "base/theme/comp",
|
||||||
|
under_styles[conf->disable_screen_effects]);
|
||||||
|
edje_object_part_swallow(zone->base, "e.swallow.background",
|
||||||
|
zone->transition_object ?: zone->bg_object);
|
||||||
|
e_theme_edje_object_set(zone->over, "base/theme/comp",
|
||||||
|
over_styles[conf->disable_screen_effects]);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
E_FREE_FUNC(zone->base, evas_object_del);
|
||||||
|
E_FREE_FUNC(zone->over, evas_object_del);
|
||||||
|
zone->base = o = edje_object_add(zone->comp->evas);
|
||||||
|
evas_object_repeat_events_set(o, 1);
|
||||||
|
evas_object_name_set(zone->base, "zone->base");
|
||||||
|
e_theme_edje_object_set(o, "base/theme/comp", under_styles[conf->disable_screen_effects]);
|
||||||
|
edje_object_part_swallow(zone->base, "e.swallow.background", zone->transition_object ?: zone->bg_object);
|
||||||
|
evas_object_move(o, zone->x, zone->y);
|
||||||
|
evas_object_resize(o, zone->w, zone->h);
|
||||||
|
evas_object_layer_set(o, E_LAYER_BG);
|
||||||
|
evas_object_show(o);
|
||||||
|
|
||||||
|
zone->over = o = edje_object_add(zone->comp->evas);
|
||||||
|
evas_object_layer_set(o, E_LAYER_MAX);
|
||||||
|
evas_object_raise(o);
|
||||||
|
evas_object_name_set(zone->over, "zone->over");
|
||||||
|
evas_object_pass_events_set(o, 1);
|
||||||
|
e_theme_edje_object_set(o, "base/theme/comp", over_styles[conf->disable_screen_effects]);
|
||||||
|
evas_object_move(o, zone->x, zone->y);
|
||||||
|
evas_object_resize(o, zone->w, zone->h);
|
||||||
|
evas_object_raise(o);
|
||||||
|
evas_object_show(o);
|
||||||
|
}
|
||||||
|
|
||||||
|
EAPI void
|
||||||
|
e_comp_canvas_update(E_Comp *c)
|
||||||
|
{
|
||||||
|
E_Event_Compositor_Resize *ev;
|
||||||
|
Eina_List *l, *screens, *zones = NULL, *ll;
|
||||||
|
E_Zone *zone;
|
||||||
|
E_Screen *scr;
|
||||||
|
int i;
|
||||||
|
Eina_Bool changed = EINA_FALSE;
|
||||||
|
|
||||||
|
screens = (Eina_List *)e_xinerama_screens_get();
|
||||||
|
|
||||||
|
if (screens)
|
||||||
|
{
|
||||||
|
zones = c->zones;
|
||||||
|
c->zones = NULL;
|
||||||
|
EINA_LIST_FOREACH(screens, l, scr)
|
||||||
|
{
|
||||||
|
zone = NULL;
|
||||||
|
|
||||||
|
EINA_LIST_FOREACH(zones, ll, zone)
|
||||||
|
{
|
||||||
|
if (zone->id == scr->escreen) break;
|
||||||
|
zone = NULL;
|
||||||
|
}
|
||||||
|
if (zone)
|
||||||
|
{
|
||||||
|
changed |= e_zone_move_resize(zone, scr->x, scr->y, scr->w, scr->h);
|
||||||
|
if (changed)
|
||||||
|
printf("@@@ FOUND ZONE %i %i [%p]\n", zone->num, zone->id, zone);
|
||||||
|
zones = eina_list_remove(zones, zone);
|
||||||
|
c->zones = eina_list_append(c->zones, zone);
|
||||||
|
zone->num = scr->screen;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
zone = e_zone_new(c, scr->screen, scr->escreen,
|
||||||
|
scr->x, scr->y, scr->w, scr->h);
|
||||||
|
printf("@@@ NEW ZONE = %p\n", zone);
|
||||||
|
changed = EINA_TRUE;
|
||||||
|
}
|
||||||
|
if (changed)
|
||||||
|
printf("@@@ SCREENS: %i %i | %i %i %ix%i\n",
|
||||||
|
scr->screen, scr->escreen, scr->x, scr->y, scr->w, scr->h);
|
||||||
|
}
|
||||||
|
c->zones = eina_list_sort(c->zones, 0, _e_comp_canvas_cb_zone_sort);
|
||||||
|
if (zones)
|
||||||
|
{
|
||||||
|
E_Zone *spare_zone;
|
||||||
|
|
||||||
|
changed = EINA_TRUE;
|
||||||
|
spare_zone = eina_list_data_get(c->zones);
|
||||||
|
|
||||||
|
EINA_LIST_FREE(zones, zone)
|
||||||
|
{
|
||||||
|
E_Client *ec;
|
||||||
|
|
||||||
|
/* delete any shelves on this zone */
|
||||||
|
E_CLIENT_FOREACH(c, ec)
|
||||||
|
{
|
||||||
|
if (ec->zone == zone)
|
||||||
|
{
|
||||||
|
if (spare_zone)
|
||||||
|
e_client_zone_set(ec, spare_zone);
|
||||||
|
else
|
||||||
|
printf("EEEK! should not be here - but no\n"
|
||||||
|
"spare zones exist to move this\n"
|
||||||
|
"window to!!! help!\n");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
e_object_del(E_OBJECT(zone));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (changed) e_shelf_config_update();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
E_Zone *z;
|
||||||
|
|
||||||
|
z = e_comp_zone_number_get(c, 0);
|
||||||
|
if (z)
|
||||||
|
{
|
||||||
|
changed |= e_zone_move_resize(z, 0, 0, c->man->w, c->man->h);
|
||||||
|
if (changed) e_shelf_zone_move_resize_handle(z);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!changed) return;
|
||||||
|
if (!starting)
|
||||||
|
{
|
||||||
|
ev = calloc(1, sizeof(E_Event_Compositor_Resize));
|
||||||
|
ev->comp = c;
|
||||||
|
e_object_ref(E_OBJECT(c));
|
||||||
|
ecore_event_add(E_EVENT_COMPOSITOR_RESIZE, ev, _e_comp_canvas_event_compositor_resize_free, NULL);
|
||||||
|
}
|
||||||
|
|
||||||
|
EINA_LIST_FOREACH(c->zones, l, zone)
|
||||||
|
{
|
||||||
|
E_FREE_FUNC(zone->base, evas_object_del);
|
||||||
|
E_FREE_FUNC(zone->over, evas_object_del);
|
||||||
|
if (zone->bloff)
|
||||||
|
{
|
||||||
|
if (!e_comp_config_get()->nofade)
|
||||||
|
{
|
||||||
|
if (e_backlight_mode_get(zone) != E_BACKLIGHT_MODE_NORMAL)
|
||||||
|
e_backlight_mode_set(zone, E_BACKLIGHT_MODE_NORMAL);
|
||||||
|
e_backlight_level_set(zone, e_config->backlight.normal, -1.0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
e_comp_canvas_zone_update(zone);
|
||||||
|
}
|
||||||
|
|
||||||
|
for (i = 0; i < 11; i++)
|
||||||
|
{
|
||||||
|
Eina_List *tmp = NULL;
|
||||||
|
E_Client *ec;
|
||||||
|
|
||||||
|
if (!c->layers[i].clients) continue;
|
||||||
|
/* Make temporary list as e_client_res_change_geometry_restore
|
||||||
|
* rearranges the order. */
|
||||||
|
EINA_INLIST_FOREACH(c->layers[i].clients, ec)
|
||||||
|
tmp = eina_list_append(tmp, ec);
|
||||||
|
|
||||||
|
EINA_LIST_FREE(tmp, ec)
|
||||||
|
{
|
||||||
|
e_client_res_change_geometry_save(ec);
|
||||||
|
e_client_res_change_geometry_restore(ec);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
EAPI void
|
||||||
|
e_comp_canvas_fake_layers_init(E_Comp *comp)
|
||||||
|
{
|
||||||
|
unsigned int layer;
|
||||||
|
|
||||||
|
/* init layers */
|
||||||
|
for (layer = e_comp_canvas_layer_map(E_LAYER_CLIENT_DESKTOP); layer <= e_comp_canvas_layer_map(E_LAYER_CLIENT_PRIO); layer++)
|
||||||
|
{
|
||||||
|
Evas_Object *o2;
|
||||||
|
|
||||||
|
o2 = comp->layers[layer].obj = evas_object_rectangle_add(comp->evas);
|
||||||
|
evas_object_layer_set(o2, e_comp_canvas_layer_map_to(layer));
|
||||||
|
evas_object_name_set(o2, "layer_obj");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
EAPI void
|
||||||
|
e_comp_canvas_fps_toggle(void)
|
||||||
|
{
|
||||||
|
E_Comp_Config *conf = e_comp_config_get();
|
||||||
|
|
||||||
|
conf->fps_show = !conf->fps_show;
|
||||||
|
e_comp_internal_save();
|
||||||
|
E_LIST_FOREACH(e_comp_list(), e_comp_render_queue);
|
||||||
|
}
|
||||||
|
|
||||||
|
EAPI E_Layer
|
||||||
|
e_comp_canvas_layer_map_to(unsigned int layer)
|
||||||
|
{
|
||||||
|
switch (layer)
|
||||||
|
{
|
||||||
|
case 0: return E_LAYER_BOTTOM;
|
||||||
|
case 1: return E_LAYER_BG;
|
||||||
|
case 2: return E_LAYER_DESKTOP;
|
||||||
|
case 3: return E_LAYER_DESKTOP_TOP;
|
||||||
|
case 4: return E_LAYER_CLIENT_DESKTOP;
|
||||||
|
case 5: return E_LAYER_CLIENT_BELOW;
|
||||||
|
case 6: return E_LAYER_CLIENT_NORMAL;
|
||||||
|
case 7: return E_LAYER_CLIENT_ABOVE;
|
||||||
|
case 8: return E_LAYER_CLIENT_EDGE;
|
||||||
|
case 9: return E_LAYER_CLIENT_FULLSCREEN;
|
||||||
|
case 10: return E_LAYER_CLIENT_EDGE_FULLSCREEN;
|
||||||
|
case 11: return E_LAYER_CLIENT_POPUP;
|
||||||
|
case 12: return E_LAYER_CLIENT_TOP;
|
||||||
|
case 13: return E_LAYER_CLIENT_DRAG;
|
||||||
|
case 14: return E_LAYER_CLIENT_PRIO;
|
||||||
|
case 15: return E_LAYER_POPUP;
|
||||||
|
case 16: return E_LAYER_MENU;
|
||||||
|
case 17: return E_LAYER_DESKLOCK;
|
||||||
|
case 18: return E_LAYER_MAX;
|
||||||
|
default: break;
|
||||||
|
}
|
||||||
|
return -INT_MAX;
|
||||||
|
}
|
||||||
|
|
||||||
|
EAPI unsigned int
|
||||||
|
e_comp_canvas_layer_map(E_Layer layer)
|
||||||
|
{
|
||||||
|
switch (layer)
|
||||||
|
{
|
||||||
|
case E_LAYER_BOTTOM: return 0;
|
||||||
|
case E_LAYER_BG: return 1;
|
||||||
|
case E_LAYER_DESKTOP: return 2;
|
||||||
|
case E_LAYER_DESKTOP_TOP: return 3;
|
||||||
|
case E_LAYER_CLIENT_DESKTOP: return 4;
|
||||||
|
case E_LAYER_CLIENT_BELOW: return 5;
|
||||||
|
case E_LAYER_CLIENT_NORMAL: return 6;
|
||||||
|
case E_LAYER_CLIENT_ABOVE: return 7;
|
||||||
|
case E_LAYER_CLIENT_EDGE: return 8;
|
||||||
|
case E_LAYER_CLIENT_FULLSCREEN: return 9;
|
||||||
|
case E_LAYER_CLIENT_EDGE_FULLSCREEN: return 10;
|
||||||
|
case E_LAYER_CLIENT_POPUP: return 11;
|
||||||
|
case E_LAYER_CLIENT_TOP: return 12;
|
||||||
|
case E_LAYER_CLIENT_DRAG: return 13;
|
||||||
|
case E_LAYER_CLIENT_PRIO: return 14;
|
||||||
|
case E_LAYER_POPUP: return 15;
|
||||||
|
case E_LAYER_MENU: return 16;
|
||||||
|
case E_LAYER_DESKLOCK: return 17;
|
||||||
|
case E_LAYER_MAX: return 18;
|
||||||
|
default: break;
|
||||||
|
}
|
||||||
|
return 9999;
|
||||||
|
}
|
||||||
|
|
||||||
|
EAPI unsigned int
|
||||||
|
e_comp_canvas_client_layer_map(E_Layer layer)
|
||||||
|
{
|
||||||
|
switch (layer)
|
||||||
|
{
|
||||||
|
case E_LAYER_CLIENT_DESKTOP: return 0;
|
||||||
|
case E_LAYER_CLIENT_BELOW: return 1;
|
||||||
|
case E_LAYER_CLIENT_NORMAL: return 2;
|
||||||
|
case E_LAYER_CLIENT_ABOVE: return 3;
|
||||||
|
case E_LAYER_CLIENT_EDGE: return 4;
|
||||||
|
case E_LAYER_CLIENT_FULLSCREEN: return 5;
|
||||||
|
case E_LAYER_CLIENT_EDGE_FULLSCREEN: return 6;
|
||||||
|
case E_LAYER_CLIENT_POPUP: return 7;
|
||||||
|
case E_LAYER_CLIENT_TOP: return 8;
|
||||||
|
case E_LAYER_CLIENT_DRAG: return 9;
|
||||||
|
case E_LAYER_CLIENT_PRIO: return 10;
|
||||||
|
default: break;
|
||||||
|
}
|
||||||
|
return 9999;
|
||||||
|
}
|
||||||
|
|
||||||
|
EAPI E_Layer
|
||||||
|
e_comp_canvas_client_layer_map_nearest(int layer)
|
||||||
|
{
|
||||||
|
#define LAYER_MAP(X) \
|
||||||
|
if (layer <= X) return X
|
||||||
|
|
||||||
|
LAYER_MAP(E_LAYER_CLIENT_DESKTOP);
|
||||||
|
LAYER_MAP(E_LAYER_CLIENT_BELOW);
|
||||||
|
LAYER_MAP(E_LAYER_CLIENT_NORMAL);
|
||||||
|
LAYER_MAP(E_LAYER_CLIENT_ABOVE);
|
||||||
|
LAYER_MAP(E_LAYER_CLIENT_EDGE);
|
||||||
|
LAYER_MAP(E_LAYER_CLIENT_FULLSCREEN);
|
||||||
|
LAYER_MAP(E_LAYER_CLIENT_EDGE_FULLSCREEN);
|
||||||
|
LAYER_MAP(E_LAYER_CLIENT_POPUP);
|
||||||
|
LAYER_MAP(E_LAYER_CLIENT_TOP);
|
||||||
|
LAYER_MAP(E_LAYER_CLIENT_DRAG);
|
||||||
|
return E_LAYER_CLIENT_PRIO;
|
||||||
|
}
|
|
@ -0,0 +1,81 @@
|
||||||
|
#ifdef E_TYPEDEFS
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
typedef struct _E_Event_Compositor_Resize E_Event_Compositor_Resize;
|
||||||
|
|
||||||
|
#else
|
||||||
|
#ifndef E_COMP_CANVAS_H
|
||||||
|
#define E_COMP_CANVAS_H
|
||||||
|
|
||||||
|
struct _E_Event_Compositor_Resize
|
||||||
|
{
|
||||||
|
E_Comp *comp;
|
||||||
|
};
|
||||||
|
|
||||||
|
extern EAPI int E_EVENT_COMPOSITOR_RESIZE;
|
||||||
|
|
||||||
|
EAPI Eina_Bool e_comp_canvas_init(E_Comp *c);
|
||||||
|
EINTERN void e_comp_canvas_clear(E_Comp *c);
|
||||||
|
EAPI void e_comp_all_freeze(void);
|
||||||
|
EAPI void e_comp_all_thaw(void);
|
||||||
|
EAPI E_Zone * e_comp_zone_xy_get(const E_Comp *c, Evas_Coord x, Evas_Coord y);
|
||||||
|
EAPI E_Zone * e_comp_zone_number_get(E_Comp *c, int num);
|
||||||
|
EAPI E_Zone * e_comp_zone_id_get(E_Comp *c, int id);
|
||||||
|
EAPI E_Comp * e_comp_number_get(unsigned int num);
|
||||||
|
EAPI E_Desk * e_comp_desk_window_profile_get(E_Comp *c, const char *profile);
|
||||||
|
EAPI void e_comp_canvas_zone_update(E_Zone *zone);
|
||||||
|
EAPI void e_comp_canvas_update(E_Comp *c);
|
||||||
|
EAPI void e_comp_canvas_fake_layers_init(E_Comp *comp);
|
||||||
|
EAPI void e_comp_canvas_fps_toggle(void);
|
||||||
|
EAPI E_Layer e_comp_canvas_layer_map_to(unsigned int layer);
|
||||||
|
EAPI unsigned int e_comp_canvas_layer_map(E_Layer layer);
|
||||||
|
EAPI unsigned int e_comp_canvas_client_layer_map(E_Layer layer);
|
||||||
|
EAPI E_Layer e_comp_canvas_client_layer_map_nearest(int layer);
|
||||||
|
|
||||||
|
|
||||||
|
/* the following functions are used for adjusting root window coordinates
|
||||||
|
* to/from canvas coordinates.
|
||||||
|
* this ensures correct positioning when running E as a nested compositor
|
||||||
|
*
|
||||||
|
* - use the "adjust" functions to go root->canvas
|
||||||
|
* - use the "unadjust" functions to go canvas->root
|
||||||
|
*/
|
||||||
|
static inline int
|
||||||
|
e_comp_canvas_x_root_unadjust(const E_Comp *c, int x)
|
||||||
|
{
|
||||||
|
int cx;
|
||||||
|
|
||||||
|
ecore_evas_geometry_get(c->ee, &cx, NULL, NULL, NULL);
|
||||||
|
return x + cx;
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline int
|
||||||
|
e_comp_canvas_y_root_unadjust(const E_Comp *c, int y)
|
||||||
|
{
|
||||||
|
int cy;
|
||||||
|
|
||||||
|
ecore_evas_geometry_get(c->ee, NULL, &cy, NULL, NULL);
|
||||||
|
return y + cy;
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline int
|
||||||
|
e_comp_canvas_x_root_adjust(const E_Comp *c, int x)
|
||||||
|
{
|
||||||
|
int cx;
|
||||||
|
|
||||||
|
ecore_evas_geometry_get(c->ee, &cx, NULL, NULL, NULL);
|
||||||
|
return x - cx;
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline int
|
||||||
|
e_comp_canvas_y_root_adjust(const E_Comp *c, int y)
|
||||||
|
{
|
||||||
|
int cy;
|
||||||
|
|
||||||
|
ecore_evas_geometry_get(c->ee, NULL, &cy, NULL, NULL);
|
||||||
|
return y - cy;
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif
|
||||||
|
#endif
|
|
@ -17,8 +17,6 @@ e_comp_cfdata_edd_init(E_Config_DD **conf_edd, E_Config_DD **match_edd)
|
||||||
E_CONFIG_VAL(D, T, borderless, CHAR);
|
E_CONFIG_VAL(D, T, borderless, CHAR);
|
||||||
E_CONFIG_VAL(D, T, dialog, CHAR);
|
E_CONFIG_VAL(D, T, dialog, CHAR);
|
||||||
E_CONFIG_VAL(D, T, accepts_focus, CHAR);
|
E_CONFIG_VAL(D, T, accepts_focus, CHAR);
|
||||||
E_CONFIG_VAL(D, T, vkbd, CHAR);
|
|
||||||
E_CONFIG_VAL(D, T, quickpanel, CHAR);
|
|
||||||
E_CONFIG_VAL(D, T, argb, CHAR);
|
E_CONFIG_VAL(D, T, argb, CHAR);
|
||||||
E_CONFIG_VAL(D, T, fullscreen, CHAR);
|
E_CONFIG_VAL(D, T, fullscreen, CHAR);
|
||||||
E_CONFIG_VAL(D, T, modal, CHAR);
|
E_CONFIG_VAL(D, T, modal, CHAR);
|
||||||
|
|
|
@ -67,7 +67,6 @@ struct _E_Comp_Match
|
||||||
char dialog; // used for borders, 0 == don't use, 1 == dialog, -1 == not dialog
|
char dialog; // used for borders, 0 == don't use, 1 == dialog, -1 == not dialog
|
||||||
char accepts_focus; // used for borders, 0 == don't use, 1 == accepts focus, -1 == does not accept focus
|
char accepts_focus; // used for borders, 0 == don't use, 1 == accepts focus, -1 == does not accept focus
|
||||||
char vkbd; // used for borders, 0 == don't use, 1 == is vkbd, -1 == not vkbd
|
char vkbd; // used for borders, 0 == don't use, 1 == is vkbd, -1 == not vkbd
|
||||||
char quickpanel; // used for borders, 0 == don't use, 1 == is quickpanel, -1 == not quickpanel
|
|
||||||
char argb; // used for borders, overrides, popups, menus, 0 == don't use, 1 == is argb, -1 == not argb
|
char argb; // used for borders, overrides, popups, menus, 0 == don't use, 1 == is argb, -1 == not argb
|
||||||
char fullscreen; // used for borders, 0 == don't use, 1 == is fullscreen, -1 == not fullscreen
|
char fullscreen; // used for borders, 0 == don't use, 1 == is fullscreen, -1 == not fullscreen
|
||||||
char modal; // used for borders, 0 == don't use, 1 == is modal, -1 == not modal
|
char modal; // used for borders, 0 == don't use, 1 == is modal, -1 == not modal
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,79 @@
|
||||||
|
#ifdef E_TYPEDEFS
|
||||||
|
typedef struct E_Comp_Object_Frame E_Comp_Object_Frame;
|
||||||
|
typedef struct E_Event_Comp_Object E_Event_Comp_Object;
|
||||||
|
typedef void (*E_Comp_Object_Autoclose_Cb)(void *, Evas_Object *);
|
||||||
|
typedef Eina_Bool (*E_Comp_Object_Key_Cb)(void *, Ecore_Event_Key *);
|
||||||
|
|
||||||
|
typedef enum
|
||||||
|
{
|
||||||
|
E_COMP_OBJECT_TYPE_NONE,
|
||||||
|
E_COMP_OBJECT_TYPE_MENU,
|
||||||
|
E_COMP_OBJECT_TYPE_POPUP,
|
||||||
|
E_COMP_OBJECT_TYPE_LAST,
|
||||||
|
} E_Comp_Object_Type;
|
||||||
|
|
||||||
|
#else
|
||||||
|
#ifndef E_COMP_OBJECT_H
|
||||||
|
#define E_COMP_OBJECT_H
|
||||||
|
|
||||||
|
#define E_COMP_OBJECT_FRAME_RESHADOW "COMP_RESHADOW"
|
||||||
|
|
||||||
|
struct E_Event_Comp_Object
|
||||||
|
{
|
||||||
|
Evas_Object *comp_object;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct E_Comp_Object_Frame
|
||||||
|
{
|
||||||
|
int l, r, t, b;
|
||||||
|
Eina_Bool calc : 1; // inset has been calculated
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
extern EAPI int E_EVENT_COMP_OBJECT_ADD;
|
||||||
|
|
||||||
|
EAPI void e_comp_object_zoomap_set(Evas_Object *obj, Eina_Bool enabled);
|
||||||
|
EAPI Evas_Object *e_comp_object_client_add(E_Client *ec);
|
||||||
|
EAPI Evas_Object *e_comp_object_util_mirror_add(Evas_Object *obj);
|
||||||
|
EAPI Evas_Object *e_comp_object_util_add(Evas_Object *obj, E_Comp_Object_Type type);
|
||||||
|
EAPI void e_comp_object_frame_xy_adjust(Evas_Object *obj, int x, int y, int *ax, int *ay);
|
||||||
|
EAPI void e_comp_object_frame_xy_unadjust(Evas_Object *obj, int x, int y, int *ax, int *ay);
|
||||||
|
EAPI void e_comp_object_frame_wh_adjust(Evas_Object *obj, int w, int h, int *aw, int *ah);
|
||||||
|
EAPI void e_comp_object_frame_wh_unadjust(Evas_Object *obj, int w, int h, int *aw, int *ah);
|
||||||
|
EAPI E_Client *e_comp_object_client_get(Evas_Object *obj);
|
||||||
|
EAPI E_Zone *e_comp_object_util_zone_get(Evas_Object *obj);
|
||||||
|
EAPI void e_comp_object_util_del_list_append(Evas_Object *obj, Evas_Object *to_del);
|
||||||
|
EAPI void e_comp_object_util_del_list_remove(Evas_Object *obj, Evas_Object *to_del);
|
||||||
|
EAPI void e_comp_object_util_autoclose(Evas_Object *obj, E_Comp_Object_Autoclose_Cb del_cb, E_Comp_Object_Key_Cb cb, const void *data);
|
||||||
|
EAPI void e_comp_object_util_center(Evas_Object *obj);
|
||||||
|
EAPI void e_comp_object_util_center_on(Evas_Object *obj, Evas_Object *on);
|
||||||
|
EAPI void e_comp_object_util_center_pos_get(Evas_Object *obj, int *x, int *y);
|
||||||
|
EAPI void e_comp_object_util_fullscreen(Evas_Object *obj);
|
||||||
|
EAPI void e_comp_object_frame_geometry_get(Evas_Object *obj, int *l, int *r, int *t, int *b);
|
||||||
|
EAPI Eina_Bool e_comp_object_frame_title_set(Evas_Object *obj, const char *name);
|
||||||
|
EAPI Eina_Bool e_comp_object_frame_exists(Evas_Object *obj);
|
||||||
|
EAPI void e_comp_object_frame_icon_update(Evas_Object *obj);
|
||||||
|
EAPI Eina_Bool e_comp_object_frame_theme_set(Evas_Object *obj, const char *name);
|
||||||
|
EAPI void e_comp_object_signal_emit(Evas_Object *obj, const char *sig, const char *src);
|
||||||
|
EAPI void e_comp_object_signal_callback_add(Evas_Object *obj, const char *sig, const char *src, Edje_Signal_Cb cb, const void *data);
|
||||||
|
EAPI void e_comp_object_signal_callback_del(Evas_Object *obj, const char *sig, const char *src, Edje_Signal_Cb cb);
|
||||||
|
EAPI void e_comp_object_signal_callback_del_full(Evas_Object *obj, const char *sig, const char *src, Edje_Signal_Cb cb, const void *data);
|
||||||
|
EAPI void e_comp_object_input_area_set(Evas_Object *obj, int x, int y, int w, int h);
|
||||||
|
EAPI void e_comp_object_damage(Evas_Object *obj, int x, int y, int w, int h);
|
||||||
|
EAPI void e_comp_object_render_update_add(Evas_Object *obj);
|
||||||
|
EAPI void e_comp_object_render_update_del(Evas_Object *obj);
|
||||||
|
EAPI void e_comp_object_shape_apply(Evas_Object *obj);
|
||||||
|
EAPI void e_comp_object_redirected_set(Evas_Object *obj, Eina_Bool set);
|
||||||
|
EAPI void e_comp_object_native_surface_set(Evas_Object *obj, Eina_Bool set);
|
||||||
|
EAPI void e_comp_object_dirty(Evas_Object *obj);
|
||||||
|
EAPI Eina_Bool e_comp_object_render(Evas_Object *obj);
|
||||||
|
EAPI void e_comp_object_effect_set(Evas_Object *obj, const char *effect);
|
||||||
|
EAPI void e_comp_object_effect_params_set(Evas_Object *obj, int id, int *params, unsigned int count);
|
||||||
|
EAPI void e_comp_object_effect_clip(Evas_Object *obj);
|
||||||
|
EAPI void e_comp_object_effect_unclip(Evas_Object *obj);
|
||||||
|
EAPI void e_comp_object_effect_start(Evas_Object *obj, Edje_Signal_Cb end_cb, const void *end_data);
|
||||||
|
EAPI void e_comp_object_effect_stop(Evas_Object *obj, Edje_Signal_Cb end_cb EINA_UNUSED);
|
||||||
|
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
|
@ -1,248 +0,0 @@
|
||||||
#include "e.h"
|
|
||||||
#include "e_comp_render_update.h"
|
|
||||||
|
|
||||||
//////////////////////////////////////////////////////////////////////////
|
|
||||||
|
|
||||||
static void
|
|
||||||
_e_comp_tiles_alloc(E_Comp_Render_Update *up)
|
|
||||||
{
|
|
||||||
if (up->tiles) return;
|
|
||||||
up->tiles = calloc(up->tw * up->th, sizeof(unsigned char));
|
|
||||||
}
|
|
||||||
|
|
||||||
//////////////////////////////////////////////////////////////////////////
|
|
||||||
|
|
||||||
E_Comp_Render_Update *
|
|
||||||
e_comp_render_update_new(void)
|
|
||||||
{
|
|
||||||
E_Comp_Render_Update *up;
|
|
||||||
|
|
||||||
up = calloc(1, sizeof(E_Comp_Render_Update));
|
|
||||||
up->tsw = 32;
|
|
||||||
up->tsh = 32;
|
|
||||||
up->pol = E_COMP_RENDER_UPDATE_POLICY_RAW;
|
|
||||||
return up;
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
|
||||||
e_comp_render_update_free(E_Comp_Render_Update *up)
|
|
||||||
{
|
|
||||||
if (!up) return;
|
|
||||||
free(up->tiles);
|
|
||||||
free(up);
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
|
||||||
e_comp_render_update_policy_set(E_Comp_Render_Update *up,
|
|
||||||
E_Comp_Render_Update_Policy pol)
|
|
||||||
{
|
|
||||||
up->pol = pol;
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
|
||||||
e_comp_render_update_tile_size_set(E_Comp_Render_Update *up,
|
|
||||||
int tsw,
|
|
||||||
int tsh)
|
|
||||||
{
|
|
||||||
if ((up->tsw == tsw) && (up->tsh == tsh)) return;
|
|
||||||
up->tsw = tsw;
|
|
||||||
up->tsh = tsh;
|
|
||||||
e_comp_render_update_clear(up);
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
|
||||||
e_comp_render_update_resize(E_Comp_Render_Update *up,
|
|
||||||
int w,
|
|
||||||
int h)
|
|
||||||
{
|
|
||||||
unsigned char *ptiles, *p, *pp;
|
|
||||||
int ptw, pth, x, y;
|
|
||||||
|
|
||||||
if ((!up) || ((up->w == w) && (up->h == h))) return;
|
|
||||||
|
|
||||||
ptw = up->tw;
|
|
||||||
pth = up->th;
|
|
||||||
ptiles = up->tiles;
|
|
||||||
|
|
||||||
up->w = w;
|
|
||||||
up->h = h;
|
|
||||||
up->tw = (up->w + up->tsw - 1) / up->tsw;
|
|
||||||
up->th = (up->h + up->tsh - 1) / up->tsh;
|
|
||||||
up->tiles = NULL;
|
|
||||||
_e_comp_tiles_alloc(up);
|
|
||||||
if ((ptiles) && (up->tiles))
|
|
||||||
{
|
|
||||||
if (pth <= up->th)
|
|
||||||
{
|
|
||||||
for (y = 0; y < pth; y++)
|
|
||||||
{
|
|
||||||
p = up->tiles + (y * up->tw);
|
|
||||||
pp = ptiles + (y * ptw);
|
|
||||||
if (ptw <= up->tw)
|
|
||||||
for (x = 0; x < ptw; x++)
|
|
||||||
*p++ = *pp++;
|
|
||||||
else
|
|
||||||
for (x = 0; x < up->tw; x++)
|
|
||||||
*p++ = *pp++;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
for (y = 0; y < up->th; y++)
|
|
||||||
{
|
|
||||||
p = up->tiles + (y * up->tw);
|
|
||||||
pp = ptiles + (y * ptw);
|
|
||||||
if (ptw <= up->tw)
|
|
||||||
for (x = 0; x < ptw; x++)
|
|
||||||
*p++ = *pp++;
|
|
||||||
else
|
|
||||||
for (x = 0; x < up->tw; x++)
|
|
||||||
*p++ = *pp++;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
free(ptiles);
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
|
||||||
e_comp_render_update_add(E_Comp_Render_Update *up,
|
|
||||||
int x,
|
|
||||||
int y,
|
|
||||||
int w,
|
|
||||||
int h)
|
|
||||||
{
|
|
||||||
int tx, ty, txx, tyy, xx, yy;
|
|
||||||
unsigned char *t, *t2;
|
|
||||||
|
|
||||||
if ((w <= 0) || (h <= 0)) return;
|
|
||||||
if ((up->tw <= 0) || (up->th <= 0)) return;
|
|
||||||
|
|
||||||
_e_comp_tiles_alloc(up);
|
|
||||||
|
|
||||||
E_RECTS_CLIP_TO_RECT(x, y, w, h, 0, 0, up->w, up->h);
|
|
||||||
if ((w <= 0) || (h <= 0)) return;
|
|
||||||
|
|
||||||
switch (up->pol)
|
|
||||||
{
|
|
||||||
case E_COMP_RENDER_UPDATE_POLICY_RAW:
|
|
||||||
break;
|
|
||||||
|
|
||||||
case E_COMP_RENDER_UPDATE_POLICY_HALF_WIDTH_OR_MORE_ROUND_UP_TO_FULL_WIDTH:
|
|
||||||
if (w > (up->w / 2))
|
|
||||||
{
|
|
||||||
x = 0;
|
|
||||||
w = up->w;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
|
|
||||||
default:
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
tx = x / up->tsw;
|
|
||||||
ty = y / up->tsh;
|
|
||||||
txx = (x + w - 1) / up->tsw;
|
|
||||||
tyy = (y + h - 1) / up->tsh;
|
|
||||||
t = up->tiles + (ty * up->tw) + tx;
|
|
||||||
for (yy = ty; yy <= tyy; yy++)
|
|
||||||
{
|
|
||||||
t2 = t;
|
|
||||||
for (xx = tx; xx <= txx; xx++)
|
|
||||||
{
|
|
||||||
*t2 = 1;
|
|
||||||
t2++;
|
|
||||||
}
|
|
||||||
t += up->tw;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
E_Comp_Render_Update_Rect *
|
|
||||||
e_comp_render_update_rects_get(E_Comp_Render_Update *up)
|
|
||||||
{
|
|
||||||
E_Comp_Render_Update_Rect *r;
|
|
||||||
int ri = 0;
|
|
||||||
int x, y;
|
|
||||||
unsigned char *t, *t2, *t3;
|
|
||||||
|
|
||||||
if (!up->tiles) return NULL;
|
|
||||||
r = calloc((up->tw * up->th) + 1, sizeof(E_Comp_Render_Update_Rect));
|
|
||||||
if (!r) return NULL;
|
|
||||||
t = up->tiles;
|
|
||||||
for (y = 0; y < up->th; y++)
|
|
||||||
{
|
|
||||||
for (x = 0; x < up->tw; x++)
|
|
||||||
{
|
|
||||||
if (*t)
|
|
||||||
{
|
|
||||||
int can_expand_x = 1, can_expand_y = 1;
|
|
||||||
int xx = 0, yy = 0;
|
|
||||||
|
|
||||||
t2 = t + 1;
|
|
||||||
while (can_expand_x)
|
|
||||||
{
|
|
||||||
xx++;
|
|
||||||
if ((x + xx) >= up->tw) can_expand_x = 0;
|
|
||||||
else if (!*t2)
|
|
||||||
can_expand_x = 0;
|
|
||||||
if (can_expand_x) *t2 = 0;
|
|
||||||
t2++;
|
|
||||||
}
|
|
||||||
t3 = t;
|
|
||||||
while (can_expand_y)
|
|
||||||
{
|
|
||||||
int i;
|
|
||||||
|
|
||||||
yy++;
|
|
||||||
t3 += up->tw;
|
|
||||||
if ((y + yy) >= up->th) can_expand_y = 0;
|
|
||||||
if (can_expand_y)
|
|
||||||
{
|
|
||||||
t2 = t3;
|
|
||||||
for (i = 0; i < xx; i++)
|
|
||||||
{
|
|
||||||
if (!*t2)
|
|
||||||
{
|
|
||||||
can_expand_y = 0;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
t2++;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (can_expand_y)
|
|
||||||
{
|
|
||||||
t2 = t3;
|
|
||||||
for (i = 0; i < xx; i++)
|
|
||||||
{
|
|
||||||
*t2 = 0;
|
|
||||||
t2++;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
*t = 0;
|
|
||||||
r[ri].x = x * up->tsw;
|
|
||||||
r[ri].y = y * up->tsh;
|
|
||||||
r[ri].w = xx * up->tsw;
|
|
||||||
r[ri].h = yy * up->tsh;
|
|
||||||
if ((r[ri].x + r[ri].w) > up->w) r[ri].w = up->w - r[ri].x;
|
|
||||||
if ((r[ri].y + r[ri].h) > up->h) r[ri].h = up->h - r[ri].y;
|
|
||||||
if ((r[ri].w <= 0) || (r[ri].h <= 0)) r[ri].w = 0;
|
|
||||||
else ri++;
|
|
||||||
x += xx - 1;
|
|
||||||
t += xx - 1;
|
|
||||||
}
|
|
||||||
t++;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return r;
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
|
||||||
e_comp_render_update_clear(E_Comp_Render_Update *up)
|
|
||||||
{
|
|
||||||
if (up->tiles)
|
|
||||||
{
|
|
||||||
free(up->tiles);
|
|
||||||
up->tiles = NULL;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
|
@ -1,46 +0,0 @@
|
||||||
#ifdef E_TYPEDEFS
|
|
||||||
typedef struct _E_Comp_Render_Update E_Comp_Render_Update;
|
|
||||||
typedef struct _E_Comp_Render_Update_Rect E_Comp_Render_Update_Rect;
|
|
||||||
typedef enum _E_Comp_Render_Update_Policy
|
|
||||||
{
|
|
||||||
E_COMP_RENDER_UPDATE_POLICY_RAW,
|
|
||||||
E_COMP_RENDER_UPDATE_POLICY_HALF_WIDTH_OR_MORE_ROUND_UP_TO_FULL_WIDTH,
|
|
||||||
} E_Comp_Render_Update_Policy;
|
|
||||||
#else
|
|
||||||
#ifndef E_COMP_RENDER_UPDATE_H
|
|
||||||
#define E_COMP_RENDER_UPDATE_H
|
|
||||||
|
|
||||||
struct _E_Comp_Render_Update_Rect
|
|
||||||
{
|
|
||||||
int x, y, w, h;
|
|
||||||
};
|
|
||||||
|
|
||||||
struct _E_Comp_Render_Update
|
|
||||||
{
|
|
||||||
int w, h;
|
|
||||||
int tw, th;
|
|
||||||
int tsw, tsh;
|
|
||||||
unsigned char *tiles;
|
|
||||||
E_Comp_Render_Update_Policy pol;
|
|
||||||
};
|
|
||||||
|
|
||||||
E_Comp_Render_Update *e_comp_render_update_new(void);
|
|
||||||
void e_comp_render_update_free(E_Comp_Render_Update *up);
|
|
||||||
void e_comp_render_update_policy_set(E_Comp_Render_Update *up,
|
|
||||||
E_Comp_Render_Update_Policy pol);
|
|
||||||
void e_comp_render_update_tile_size_set(E_Comp_Render_Update *up,
|
|
||||||
int tsw,
|
|
||||||
int tsh);
|
|
||||||
void e_comp_render_update_resize(E_Comp_Render_Update *up,
|
|
||||||
int w,
|
|
||||||
int h);
|
|
||||||
void e_comp_render_update_add(E_Comp_Render_Update *up,
|
|
||||||
int x,
|
|
||||||
int y,
|
|
||||||
int w,
|
|
||||||
int h);
|
|
||||||
E_Comp_Render_Update_Rect *e_comp_render_update_rects_get(E_Comp_Render_Update *up);
|
|
||||||
void e_comp_render_update_clear(E_Comp_Render_Update *up);
|
|
||||||
|
|
||||||
#endif
|
|
||||||
#endif
|
|
|
@ -1,8 +1,9 @@
|
||||||
#include "e.h"
|
#include "e.h"
|
||||||
#include "e_comp_wl.h"
|
#include "e_comp_wl.h"
|
||||||
#include "e_surface.h"
|
|
||||||
#include <sys/mman.h>
|
#include <sys/mman.h>
|
||||||
|
|
||||||
|
#define e_pixmap_parent_window_set(X, Y) e_pixmap_parent_window_set(X, (Ecore_Window)(uintptr_t)Y)
|
||||||
|
|
||||||
/* compositor function prototypes */
|
/* compositor function prototypes */
|
||||||
static void _seat_send_updated_caps(struct wl_seat *seat);
|
static void _seat_send_updated_caps(struct wl_seat *seat);
|
||||||
static void _move_resources(struct wl_list *dest, struct wl_list *src);
|
static void _move_resources(struct wl_list *dest, struct wl_list *src);
|
||||||
|
@ -59,7 +60,6 @@ static void _e_comp_wl_cb_bind(struct wl_client *client, void *data, unsigned in
|
||||||
static Eina_Bool _e_comp_wl_cb_read(void *data EINA_UNUSED, Ecore_Fd_Handler *hdl EINA_UNUSED);
|
static Eina_Bool _e_comp_wl_cb_read(void *data EINA_UNUSED, Ecore_Fd_Handler *hdl EINA_UNUSED);
|
||||||
static Eina_Bool _e_comp_wl_cb_idle(void *data EINA_UNUSED);
|
static Eina_Bool _e_comp_wl_cb_idle(void *data EINA_UNUSED);
|
||||||
static Eina_Bool _e_comp_wl_cb_module_idle(void *data EINA_UNUSED);
|
static Eina_Bool _e_comp_wl_cb_module_idle(void *data EINA_UNUSED);
|
||||||
static Eina_Bool _e_comp_wl_cb_keymap_changed(void *data EINA_UNUSED, int type EINA_UNUSED, void *event EINA_UNUSED);
|
|
||||||
|
|
||||||
/* compositor interface prototypes */
|
/* compositor interface prototypes */
|
||||||
static void _e_comp_wl_cb_surface_create(struct wl_client *client, struct wl_resource *resource, unsigned int id);
|
static void _e_comp_wl_cb_surface_create(struct wl_client *client, struct wl_resource *resource, unsigned int id);
|
||||||
|
@ -225,13 +225,11 @@ static const struct wl_pointer_grab_interface _e_drag_grab_interface =
|
||||||
/* local variables */
|
/* local variables */
|
||||||
static Ecore_Idler *_module_idler = NULL;
|
static Ecore_Idler *_module_idler = NULL;
|
||||||
|
|
||||||
static Eina_Hash *_e_wl_border_hash = NULL;
|
|
||||||
|
|
||||||
/* external variables */
|
/* external variables */
|
||||||
EAPI E_Wayland_Compositor *_e_wl_comp;
|
EAPI E_Wayland_Compositor *_e_wl_comp;
|
||||||
|
|
||||||
/* external functions */
|
/* external functions */
|
||||||
EINTERN Eina_Bool
|
EAPI Eina_Bool
|
||||||
e_comp_wl_init(void)
|
e_comp_wl_init(void)
|
||||||
{
|
{
|
||||||
int fd = 0;
|
int fd = 0;
|
||||||
|
@ -274,7 +272,7 @@ e_comp_wl_init(void)
|
||||||
* NB: This is interesting....if we try to eglGetDisplay and pass in the
|
* NB: This is interesting....if we try to eglGetDisplay and pass in the
|
||||||
* wayland display, then EGL fails due to XCB not owning the event queue.
|
* wayland display, then EGL fails due to XCB not owning the event queue.
|
||||||
* If we pass it a NULL, it inits just fine */
|
* If we pass it a NULL, it inits just fine */
|
||||||
_e_wl_comp->egl.display = eglGetDisplay((EGLNativeDisplayType)ecore_x_display_get());
|
_e_wl_comp->egl.display = eglGetDisplay(NULL);
|
||||||
if (_e_wl_comp->egl.display == EGL_NO_DISPLAY)
|
if (_e_wl_comp->egl.display == EGL_NO_DISPLAY)
|
||||||
ERR("Could not get EGL display: %m");
|
ERR("Could not get EGL display: %m");
|
||||||
else
|
else
|
||||||
|
@ -305,44 +303,6 @@ e_comp_wl_init(void)
|
||||||
ERR("Could not choose EGL config: %m");
|
ERR("Could not choose EGL config: %m");
|
||||||
eglTerminate(_e_wl_comp->egl.display);
|
eglTerminate(_e_wl_comp->egl.display);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* if (!eglBindAPI(EGL_OPENGL_ES_API)) */
|
|
||||||
/* { */
|
|
||||||
/* ERR("Could not bind EGL API: %m"); */
|
|
||||||
/* eglTerminate(_e_wl_comp->egl.display); */
|
|
||||||
/* } */
|
|
||||||
|
|
||||||
/* exts = (const char *)eglQueryString(_e_wl_comp->egl.display, EGL_EXTENSIONS); */
|
|
||||||
/* if (!exts) */
|
|
||||||
/* { */
|
|
||||||
/* ERR("Could not get EGL Extensions: %m"); */
|
|
||||||
/* eglTerminate(_e_wl_comp->egl.display); */
|
|
||||||
/* } */
|
|
||||||
/* else */
|
|
||||||
/* { */
|
|
||||||
/* if (strstr(exts, "EGL_WL_bind_wayland_display")) */
|
|
||||||
/* { */
|
|
||||||
/* _e_wl_comp->egl.bind_display = */
|
|
||||||
/* (void *)eglGetProcAddress("eglBindWaylandDisplayWL"); */
|
|
||||||
/* _e_wl_comp->egl.unbind_display = */
|
|
||||||
/* (void *)eglGetProcAddress("eglUnbindWaylandDisplayWL"); */
|
|
||||||
/* } */
|
|
||||||
/* } */
|
|
||||||
|
|
||||||
/* if (_e_wl_comp->egl.bind_display) */
|
|
||||||
/* { */
|
|
||||||
/* EGLBoolean ret; */
|
|
||||||
|
|
||||||
/* ret = _e_wl_comp->egl.bind_display(_e_wl_comp->egl.display, */
|
|
||||||
/* _e_wl_comp->wl.display); */
|
|
||||||
/* if (!ret) */
|
|
||||||
/* { */
|
|
||||||
/* ERR("Could not bind EGL Wayland Display: %m"); */
|
|
||||||
/* _e_wl_comp->egl.bound = EINA_FALSE; */
|
|
||||||
/* } */
|
|
||||||
/* else */
|
|
||||||
/* _e_wl_comp->egl.bound = EINA_TRUE; */
|
|
||||||
/* } */
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
@ -354,11 +314,12 @@ e_comp_wl_init(void)
|
||||||
goto err;
|
goto err;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifndef WAYLAND_ONLY
|
||||||
/* setup keymap_change event handler */
|
/* setup keymap_change event handler */
|
||||||
_e_wl_comp->kbd_handler =
|
_e_wl_comp->kbd_handler =
|
||||||
ecore_event_handler_add(ECORE_X_EVENT_XKB_STATE_NOTIFY,
|
ecore_event_handler_add(ECORE_X_EVENT_XKB_STATE_NOTIFY,
|
||||||
_e_comp_wl_cb_keymap_changed, NULL);
|
e_comp_wl_cb_keymap_changed, NULL);
|
||||||
|
#endif
|
||||||
/* get the displays event loop */
|
/* get the displays event loop */
|
||||||
_e_wl_comp->wl.loop = wl_display_get_event_loop(_e_wl_comp->wl.display);
|
_e_wl_comp->wl.loop = wl_display_get_event_loop(_e_wl_comp->wl.display);
|
||||||
|
|
||||||
|
@ -382,9 +343,11 @@ e_comp_wl_init(void)
|
||||||
goto err;
|
goto err;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
wl_event_loop_dispatch(_e_wl_comp->wl.loop, 0);
|
||||||
|
#ifndef WAYLAND_ONLY
|
||||||
/* add an idler for deferred shell module loading */
|
/* add an idler for deferred shell module loading */
|
||||||
_module_idler = ecore_idler_add(_e_comp_wl_cb_module_idle, NULL);
|
_module_idler = ecore_idler_add(_e_comp_wl_cb_module_idle, NULL);
|
||||||
|
#endif
|
||||||
/* return success */
|
/* return success */
|
||||||
return EINA_TRUE;
|
return EINA_TRUE;
|
||||||
|
|
||||||
|
@ -392,9 +355,10 @@ err:
|
||||||
/* remove kbd handler */
|
/* remove kbd handler */
|
||||||
if (_e_wl_comp->kbd_handler)
|
if (_e_wl_comp->kbd_handler)
|
||||||
ecore_event_handler_del(_e_wl_comp->kbd_handler);
|
ecore_event_handler_del(_e_wl_comp->kbd_handler);
|
||||||
|
#ifndef WAYLAND_ONLY
|
||||||
/* remove the module idler */
|
/* remove the module idler */
|
||||||
if (_module_idler) ecore_idler_del(_module_idler);
|
if (_module_idler) ecore_idler_del(_module_idler);
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifdef HAVE_WAYLAND_EGL
|
#ifdef HAVE_WAYLAND_EGL
|
||||||
/* unbind wayland display */
|
/* unbind wayland display */
|
||||||
|
@ -452,8 +416,6 @@ e_comp_wl_shutdown(void)
|
||||||
E_FREE(_e_wl_comp);
|
E_FREE(_e_wl_comp);
|
||||||
}
|
}
|
||||||
|
|
||||||
E_FREE_FUNC(_e_wl_border_hash, eina_hash_free);
|
|
||||||
|
|
||||||
/* disable the loaded shell module */
|
/* disable the loaded shell module */
|
||||||
/* TODO: we should have a config variable somewhere to store which
|
/* TODO: we should have a config variable somewhere to store which
|
||||||
* shell we want to unload (tablet, mobile, etc) */
|
* shell we want to unload (tablet, mobile, etc) */
|
||||||
|
@ -461,27 +423,16 @@ e_comp_wl_shutdown(void)
|
||||||
e_module_disable(mod);
|
e_module_disable(mod);
|
||||||
}
|
}
|
||||||
|
|
||||||
EAPI void
|
#ifdef WAYLAND_ONLY
|
||||||
e_comp_wl_border_surface_add(Ecore_Window win, const E_Border *bd)
|
EAPI int
|
||||||
|
e_comp_wl_input_read(int fd EINA_UNUSED, unsigned int mask EINA_UNUSED, void *data)
|
||||||
{
|
{
|
||||||
if (!_e_wl_border_hash)
|
E_Wayland_Compositor *wl_comp = data;
|
||||||
_e_wl_border_hash = eina_hash_int32_new(NULL);
|
|
||||||
eina_hash_add(_e_wl_border_hash, &win, bd);
|
|
||||||
}
|
|
||||||
|
|
||||||
EAPI void
|
wl_event_loop_dispatch(wl_comp->wl.input_loop, 0);
|
||||||
e_comp_wl_border_surface_del(Ecore_Window win)
|
return 1;
|
||||||
{
|
|
||||||
if (!_e_wl_border_hash) return;
|
|
||||||
eina_hash_del_by_key(_e_wl_border_hash, &win);
|
|
||||||
}
|
|
||||||
|
|
||||||
EAPI E_Border *
|
|
||||||
e_comp_wl_border_surface_find(Ecore_Window win)
|
|
||||||
{
|
|
||||||
if (!_e_wl_border_hash) return NULL;
|
|
||||||
return eina_hash_find(_e_wl_border_hash, &win);
|
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
EAPI void
|
EAPI void
|
||||||
wl_seat_init(struct wl_seat *seat)
|
wl_seat_init(struct wl_seat *seat)
|
||||||
|
@ -872,6 +823,44 @@ e_comp_wl_time_get(void)
|
||||||
return (tm.tv_sec * 1000 + tm.tv_usec / 1000);
|
return (tm.tv_sec * 1000 + tm.tv_usec / 1000);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
EAPI void
|
||||||
|
e_comp_wl_mouse_button(struct wl_resource *resource, uint32_t serial, uint32_t timestamp, uint32_t button, uint32_t state_w)
|
||||||
|
{
|
||||||
|
switch (button)
|
||||||
|
{
|
||||||
|
case BTN_LEFT:
|
||||||
|
case BTN_MIDDLE:
|
||||||
|
case BTN_RIGHT:
|
||||||
|
wl_pointer_send_button(resource, serial, timestamp,
|
||||||
|
button, state_w);
|
||||||
|
break;
|
||||||
|
case 4:
|
||||||
|
if (state_w)
|
||||||
|
wl_pointer_send_axis(resource, timestamp,
|
||||||
|
WL_POINTER_AXIS_VERTICAL_SCROLL,
|
||||||
|
-wl_fixed_from_int(1));
|
||||||
|
break;
|
||||||
|
case 5:
|
||||||
|
if (state_w)
|
||||||
|
wl_pointer_send_axis(resource, timestamp,
|
||||||
|
WL_POINTER_AXIS_VERTICAL_SCROLL,
|
||||||
|
wl_fixed_from_int(1));
|
||||||
|
break;
|
||||||
|
case 6:
|
||||||
|
if (state_w)
|
||||||
|
wl_pointer_send_axis(resource, timestamp,
|
||||||
|
WL_POINTER_AXIS_HORIZONTAL_SCROLL,
|
||||||
|
-wl_fixed_from_int(1));
|
||||||
|
break;
|
||||||
|
case 7:
|
||||||
|
if (state_w)
|
||||||
|
wl_pointer_send_axis(resource, timestamp,
|
||||||
|
WL_POINTER_AXIS_HORIZONTAL_SCROLL,
|
||||||
|
wl_fixed_from_int(1));
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
EAPI void
|
EAPI void
|
||||||
e_comp_wl_input_modifiers_update(unsigned int serial)
|
e_comp_wl_input_modifiers_update(unsigned int serial)
|
||||||
{
|
{
|
||||||
|
@ -1003,47 +992,8 @@ _default_grab_button(struct wl_pointer_grab *grab, uint32_t timestamp, uint32_t
|
||||||
serial = wl_display_next_serial(_e_wl_comp->wl.display);
|
serial = wl_display_next_serial(_e_wl_comp->wl.display);
|
||||||
|
|
||||||
wl_resource_for_each(res, lst)
|
wl_resource_for_each(res, lst)
|
||||||
{
|
e_comp_wl_mouse_button(res, serial, timestamp, button, state_w);
|
||||||
switch (button)
|
|
||||||
{
|
|
||||||
case BTN_LEFT:
|
|
||||||
case BTN_MIDDLE:
|
|
||||||
case BTN_RIGHT:
|
|
||||||
wl_pointer_send_button(res, serial, timestamp,
|
|
||||||
button, state_w);
|
|
||||||
break;
|
|
||||||
case 4:
|
|
||||||
if (state_w)
|
|
||||||
wl_pointer_send_axis(res, timestamp,
|
|
||||||
WL_POINTER_AXIS_VERTICAL_SCROLL,
|
|
||||||
-wl_fixed_from_int(1));
|
|
||||||
break;
|
|
||||||
case 5:
|
|
||||||
if (state_w)
|
|
||||||
wl_pointer_send_axis(res, timestamp,
|
|
||||||
WL_POINTER_AXIS_VERTICAL_SCROLL,
|
|
||||||
wl_fixed_from_int(1));
|
|
||||||
break;
|
|
||||||
case 6:
|
|
||||||
if (state_w)
|
|
||||||
wl_pointer_send_axis(res, timestamp,
|
|
||||||
WL_POINTER_AXIS_HORIZONTAL_SCROLL,
|
|
||||||
-wl_fixed_from_int(1));
|
|
||||||
break;
|
|
||||||
case 7:
|
|
||||||
if (state_w)
|
|
||||||
wl_pointer_send_axis(res, timestamp,
|
|
||||||
WL_POINTER_AXIS_HORIZONTAL_SCROLL,
|
|
||||||
wl_fixed_from_int(1));
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (pointer->button_count == 0 &&
|
|
||||||
state == WL_POINTER_BUTTON_STATE_RELEASED)
|
|
||||||
wl_pointer_set_focus(pointer, pointer->current,
|
|
||||||
pointer->current_x, pointer->current_y);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
@ -1600,8 +1550,8 @@ _e_comp_wl_cb_module_idle(void *data EINA_UNUSED)
|
||||||
return ECORE_CALLBACK_RENEW;
|
return ECORE_CALLBACK_RENEW;
|
||||||
}
|
}
|
||||||
|
|
||||||
static Eina_Bool
|
EAPI Eina_Bool
|
||||||
_e_comp_wl_cb_keymap_changed(void *data EINA_UNUSED, int type EINA_UNUSED, void *event EINA_UNUSED)
|
e_comp_wl_cb_keymap_changed(void *data EINA_UNUSED, int type EINA_UNUSED, void *event EINA_UNUSED)
|
||||||
{
|
{
|
||||||
struct xkb_keymap *keymap;
|
struct xkb_keymap *keymap;
|
||||||
|
|
||||||
|
@ -1679,8 +1629,13 @@ _e_comp_wl_cb_surface_create(struct wl_client *client, struct wl_resource *resou
|
||||||
wl_resource_post_no_memory(resource);
|
wl_resource_post_no_memory(resource);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
ews->id = id;
|
|
||||||
|
|
||||||
|
ews->wl.client = client;
|
||||||
|
ews->pixmap = e_pixmap_find(E_PIXMAP_TYPE_WL, id);
|
||||||
|
if (!ews->pixmap)
|
||||||
|
ews->pixmap = e_pixmap_new(E_PIXMAP_TYPE_WL, id);
|
||||||
|
e_pixmap_parent_window_set(ews->pixmap, ews);
|
||||||
|
e_pixmap_usable_set(ews->pixmap, 1);
|
||||||
/* initialize the destroy signal */
|
/* initialize the destroy signal */
|
||||||
wl_signal_init(&ews->wl.destroy_signal);
|
wl_signal_init(&ews->wl.destroy_signal);
|
||||||
|
|
||||||
|
@ -1726,6 +1681,8 @@ _e_comp_wl_cb_surface_destroy(struct wl_resource *resource)
|
||||||
E_Wayland_Surface *ews = NULL;
|
E_Wayland_Surface *ews = NULL;
|
||||||
E_Wayland_Surface_Frame_Callback *cb = NULL, *ncb = NULL;
|
E_Wayland_Surface_Frame_Callback *cb = NULL, *ncb = NULL;
|
||||||
struct wl_pointer *pointer;
|
struct wl_pointer *pointer;
|
||||||
|
Eina_Inlist *l;
|
||||||
|
E_Wayland_Buffer *buffer;
|
||||||
|
|
||||||
/* try to get the surface from this resource */
|
/* try to get the surface from this resource */
|
||||||
if (!(ews = wl_resource_get_user_data(resource)))
|
if (!(ews = wl_resource_get_user_data(resource)))
|
||||||
|
@ -1745,6 +1702,10 @@ _e_comp_wl_cb_surface_destroy(struct wl_resource *resource)
|
||||||
{
|
{
|
||||||
if (ews->unmap) ews->unmap(ews);
|
if (ews->unmap) ews->unmap(ews);
|
||||||
}
|
}
|
||||||
|
if (ews->buffer_reference.buffer)
|
||||||
|
ews->buffer_reference.buffer->ews = NULL;
|
||||||
|
if (ews->pending.buffer)
|
||||||
|
ews->pending.buffer->ews = NULL;
|
||||||
|
|
||||||
/* loop any pending surface frame callbacks and destroy them */
|
/* loop any pending surface frame callbacks and destroy them */
|
||||||
wl_list_for_each_safe(cb, ncb, &ews->pending.frames, wl.link)
|
wl_list_for_each_safe(cb, ncb, &ews->pending.frames, wl.link)
|
||||||
|
@ -1772,11 +1733,23 @@ _e_comp_wl_cb_surface_destroy(struct wl_resource *resource)
|
||||||
wl_list_for_each_safe(cb, ncb, &ews->wl.frames, wl.link)
|
wl_list_for_each_safe(cb, ncb, &ews->wl.frames, wl.link)
|
||||||
wl_resource_destroy(cb->wl.resource);
|
wl_resource_destroy(cb->wl.resource);
|
||||||
|
|
||||||
|
EINA_INLIST_FOREACH_SAFE(ews->buffers, l, buffer)
|
||||||
|
{
|
||||||
|
buffer->ews = NULL;
|
||||||
|
ews->buffers = eina_inlist_remove(ews->buffers, EINA_INLIST_GET(buffer));
|
||||||
|
}
|
||||||
|
if (e_comp_get(NULL)->pointer->pixmap == ews->pixmap)
|
||||||
|
{
|
||||||
|
e_pointer_image_set(e_comp_get(NULL)->pointer, NULL, 0, 0, 0, 0);
|
||||||
|
}
|
||||||
|
e_pixmap_parent_window_set(ews->pixmap, NULL);
|
||||||
|
e_pixmap_free(ews->pixmap);
|
||||||
|
|
||||||
/* remove this surface from the compositor's list of surfaces */
|
/* remove this surface from the compositor's list of surfaces */
|
||||||
_e_wl_comp->surfaces = eina_inlist_remove(_e_wl_comp->surfaces, EINA_INLIST_GET(ews));
|
_e_wl_comp->surfaces = eina_inlist_remove(_e_wl_comp->surfaces, EINA_INLIST_GET(ews));
|
||||||
|
|
||||||
/* free the allocated surface structure */
|
/* free the allocated surface structure */
|
||||||
E_FREE(ews);
|
free(ews);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
@ -1999,6 +1972,7 @@ _e_comp_wl_input_keymap_get(void)
|
||||||
names.layout = strdup(kbd_layout->name);
|
names.layout = strdup(kbd_layout->name);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifndef WAYLAND_ONLY
|
||||||
/* if we are running under X11, try to get the xkb rule names atom */
|
/* if we are running under X11, try to get the xkb rule names atom */
|
||||||
if (getenv("DISPLAY"))
|
if (getenv("DISPLAY"))
|
||||||
{
|
{
|
||||||
|
@ -2023,7 +1997,7 @@ _e_comp_wl_input_keymap_get(void)
|
||||||
|
|
||||||
if ((data) && (len > 0))
|
if ((data) && (len > 0))
|
||||||
{
|
{
|
||||||
names.rules = strdup((const char *)data);
|
names.rules = (char*)data;
|
||||||
data += strlen((const char *)data) + 1;
|
data += strlen((const char *)data) + 1;
|
||||||
if (!names.model)
|
if (!names.model)
|
||||||
names.model = strdup((const char *)data);
|
names.model = strdup((const char *)data);
|
||||||
|
@ -2032,6 +2006,7 @@ _e_comp_wl_input_keymap_get(void)
|
||||||
names.layout = strdup((const char *)data);
|
names.layout = strdup((const char *)data);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
printf("Keymap\n");
|
printf("Keymap\n");
|
||||||
printf("\tRules: %s\n", names.rules);
|
printf("\tRules: %s\n", names.rules);
|
||||||
|
@ -2306,50 +2281,17 @@ _e_comp_wl_pointer_configure(E_Wayland_Surface *ews, Evas_Coord x, Evas_Coord y,
|
||||||
/* do we have a focused surface ? */
|
/* do we have a focused surface ? */
|
||||||
if (!input->wl.seat.pointer->focus) return;
|
if (!input->wl.seat.pointer->focus) return;
|
||||||
|
|
||||||
if ((focus = wl_resource_get_user_data(input->wl.seat.pointer->focus)))
|
focus = wl_resource_get_user_data(input->wl.seat.pointer->focus);
|
||||||
{
|
if (!focus) return;
|
||||||
/* NB: Ideally, I wanted to use the e_pointer methods here so that
|
/* NB: Ideally, I wanted to use the e_pointer methods here so that
|
||||||
* the cursor would match the E theme, however Wayland currently
|
* the cursor would match the E theme, however Wayland currently
|
||||||
* provides NO Method to get the cursor name :( so we are stuck
|
* provides NO Method to get the cursor name :( so we are stuck
|
||||||
* using the pixels from their cursor surface */
|
* using the pixels from their cursor surface */
|
||||||
|
|
||||||
/* is it mapped ? */
|
/* is it mapped ? */
|
||||||
if ((focus->mapped) && (focus->ee))
|
if ((!focus->mapped) || (!focus->ec)) return;
|
||||||
{
|
e_pixmap_dirty(ews->pixmap);
|
||||||
Ecore_Window win;
|
e_pointer_image_set(focus->ec->comp->pointer, ews->pixmap, w, h, input->pointer.hot.x, input->pointer.hot.y);
|
||||||
|
|
||||||
/* try to get the ecore_window */
|
|
||||||
if ((win = ecore_evas_window_get(focus->ee)))
|
|
||||||
{
|
|
||||||
E_Wayland_Buffer_Reference *ref;
|
|
||||||
struct wl_shm_buffer *shm_buffer;
|
|
||||||
void *pixels;
|
|
||||||
|
|
||||||
ref = &ews->buffer_reference;
|
|
||||||
|
|
||||||
shm_buffer = wl_shm_buffer_get(ref->buffer->wl.resource);
|
|
||||||
|
|
||||||
/* grab the pixels from the cursor surface */
|
|
||||||
if ((pixels = wl_shm_buffer_get_data(shm_buffer)))
|
|
||||||
{
|
|
||||||
Ecore_X_Cursor cur;
|
|
||||||
|
|
||||||
/* create the new X cursor with this image */
|
|
||||||
cur = ecore_x_cursor_new(win, pixels, w, h,
|
|
||||||
input->pointer.hot.x,
|
|
||||||
input->pointer.hot.y);
|
|
||||||
|
|
||||||
/* set the cursor on this window */
|
|
||||||
ecore_x_window_cursor_set(win, cur);
|
|
||||||
|
|
||||||
/* free the cursor */
|
|
||||||
ecore_x_cursor_free(cur);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
ecore_x_window_cursor_set(win, 0);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
@ -2430,7 +2372,11 @@ _e_comp_wl_pointer_cb_cursor_set(struct wl_client *client, struct wl_resource *r
|
||||||
input->pointer.surface = ews;
|
input->pointer.surface = ews;
|
||||||
|
|
||||||
/* if we don't have a pointer surface, we are done here */
|
/* if we don't have a pointer surface, we are done here */
|
||||||
if (!ews) return;
|
if (!ews)
|
||||||
|
{
|
||||||
|
e_pointer_hide(e_comp_get(NULL)->pointer);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
/* set the destroy listener */
|
/* set the destroy listener */
|
||||||
wl_signal_add(&ews->wl.destroy_signal,
|
wl_signal_add(&ews->wl.destroy_signal,
|
||||||
|
@ -2566,6 +2512,7 @@ _e_comp_wl_surface_buffer_reference(E_Wayland_Buffer_Reference *ref, E_Wayland_B
|
||||||
wl_signal_add(&buffer->wl.destroy_signal, &ref->destroy_listener);
|
wl_signal_add(&buffer->wl.destroy_signal, &ref->destroy_listener);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//INF("CURRENT BUFFER SWAP: %p->%p", ref->buffer, buffer);
|
||||||
ref->buffer = buffer;
|
ref->buffer = buffer;
|
||||||
ref->destroy_listener.notify =
|
ref->destroy_listener.notify =
|
||||||
_e_comp_wl_surface_buffer_reference_cb_destroy;
|
_e_comp_wl_surface_buffer_reference_cb_destroy;
|
||||||
|
@ -2611,12 +2558,32 @@ _e_comp_wl_surface_buffer_resource(struct wl_resource *resource)
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
_e_comp_wl_surface_buffer_cb_destroy(struct wl_listener *listener, void *data EINA_UNUSED)
|
_e_comp_wl_surface_buffer_cb_destroy(struct wl_listener *listener, void *data)
|
||||||
{
|
{
|
||||||
E_Wayland_Buffer *buffer;
|
E_Wayland_Buffer *buffer;
|
||||||
|
|
||||||
buffer = container_of(listener, E_Wayland_Buffer, wl.destroy_listener);
|
buffer = container_of(listener, E_Wayland_Buffer, wl.destroy_listener);
|
||||||
|
|
||||||
wl_signal_emit(&buffer->wl.destroy_signal, buffer);
|
wl_signal_emit(&buffer->wl.destroy_signal, buffer);
|
||||||
|
if (buffer->ews)
|
||||||
|
{
|
||||||
|
if (buffer->ews->ec && buffer->ews->pixmap && (e_pixmap_resource_get(buffer->ews->pixmap) == data) &&
|
||||||
|
evas_object_visible_get(buffer->ews->ec->frame))
|
||||||
|
{
|
||||||
|
//INF("DESTROYED CURRENT BUFFER: %s", e_pixmap_dirty_get(buffer->ews->pixmap) ? "DIRTY" : "CLEAN");
|
||||||
|
e_pixmap_usable_set(buffer->ews->pixmap, 0);
|
||||||
|
if (!e_pixmap_image_exists(buffer->ews->pixmap))
|
||||||
|
{
|
||||||
|
e_pixmap_image_refresh(buffer->ews->pixmap);
|
||||||
|
}
|
||||||
|
|
||||||
|
e_pixmap_image_clear(buffer->ews->pixmap, 0);
|
||||||
|
e_comp_object_damage(buffer->ews->ec->frame, 0, 0, buffer->ews->ec->client.w, buffer->ews->ec->client.h);
|
||||||
|
e_comp_object_render(buffer->ews->ec->frame);
|
||||||
|
e_comp_object_render_update_del(buffer->ews->ec->frame);
|
||||||
|
}
|
||||||
|
buffer->ews->buffers = eina_inlist_remove(buffer->ews->buffers, EINA_INLIST_GET(buffer));
|
||||||
|
}
|
||||||
E_FREE(buffer);
|
E_FREE(buffer);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2637,10 +2604,27 @@ _e_comp_wl_surface_cb_attach(struct wl_client *client EINA_UNUSED, struct wl_res
|
||||||
if (!(ews = wl_resource_get_user_data(resource))) return;
|
if (!(ews = wl_resource_get_user_data(resource))) return;
|
||||||
|
|
||||||
if (buffer_resource)
|
if (buffer_resource)
|
||||||
buffer = _e_comp_wl_surface_buffer_resource(buffer_resource);
|
{
|
||||||
|
buffer = _e_comp_wl_surface_buffer_resource(buffer_resource);
|
||||||
|
if (ews->ec && (!ews->buffer_reference.buffer))
|
||||||
|
{
|
||||||
|
e_pixmap_usable_set(ews->pixmap, 1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/* reference any existing buffers */
|
/* reference any existing buffers */
|
||||||
_e_comp_wl_surface_buffer_reference(&ews->buffer_reference, buffer);
|
_e_comp_wl_surface_buffer_reference(&ews->buffer_reference, buffer);
|
||||||
|
if (buffer)
|
||||||
|
{
|
||||||
|
if (!buffer->ews)
|
||||||
|
ews->buffers = eina_inlist_append(ews->buffers, EINA_INLIST_GET(buffer));
|
||||||
|
buffer->ews = ews;
|
||||||
|
}
|
||||||
|
//INF("ATTACHED NEW BUFFER");
|
||||||
|
e_pixmap_dirty(ews->pixmap);
|
||||||
|
//if (ews->ec)
|
||||||
|
//e_comp_object_damage(ews->ec->frame, 0, 0, ews->ec->client.w, ews->ec->client.h);
|
||||||
|
|
||||||
|
|
||||||
/* if we are setting a null buffer, then unmap the surface */
|
/* if we are setting a null buffer, then unmap the surface */
|
||||||
if (!buffer)
|
if (!buffer)
|
||||||
|
@ -2674,6 +2658,7 @@ _e_comp_wl_surface_cb_damage(struct wl_client *client EINA_UNUSED, struct wl_res
|
||||||
|
|
||||||
/* try to cast the resource data to our surface structure */
|
/* try to cast the resource data to our surface structure */
|
||||||
if (!(ews = wl_resource_get_user_data(resource))) return;
|
if (!(ews = wl_resource_get_user_data(resource))) return;
|
||||||
|
e_pixmap_image_clear(ews->pixmap, 1);
|
||||||
|
|
||||||
/* tell pixman to add this damage to pending */
|
/* tell pixman to add this damage to pending */
|
||||||
pixman_region32_union_rect(&ews->pending.damage, &ews->pending.damage,
|
pixman_region32_union_rect(&ews->pending.damage, &ews->pending.damage,
|
||||||
|
@ -2787,42 +2772,10 @@ _e_comp_wl_surface_cb_commit(struct wl_client *client EINA_UNUSED, struct wl_res
|
||||||
if (ews->unmap) ews->unmap(ews);
|
if (ews->unmap) ews->unmap(ews);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
|
||||||
{
|
|
||||||
if (ews->obj)
|
|
||||||
{
|
|
||||||
E_Wayland_Buffer *buff;
|
|
||||||
struct wl_shm_buffer *shm_buffer;
|
|
||||||
void *data;
|
|
||||||
|
|
||||||
buff = ews->pending.buffer;
|
|
||||||
|
|
||||||
shm_buffer = wl_shm_buffer_get(buff->wl.resource);
|
|
||||||
|
|
||||||
bw = wl_shm_buffer_get_width(shm_buffer);
|
|
||||||
bh = wl_shm_buffer_get_height(shm_buffer);
|
|
||||||
|
|
||||||
/* grab the pixel data from the buffer */
|
|
||||||
data = wl_shm_buffer_get_data(shm_buffer);
|
|
||||||
|
|
||||||
/* send the pixel data to the smart object */
|
|
||||||
e_surface_image_set(ews->obj, bw, bh, data);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/* if we have a reference to a buffer, get it's size */
|
|
||||||
if (&ews->buffer_reference)
|
|
||||||
{
|
|
||||||
E_Wayland_Buffer *buff;
|
|
||||||
struct wl_shm_buffer *shm_buffer;
|
|
||||||
|
|
||||||
buff = ews->buffer_reference.buffer;
|
|
||||||
|
|
||||||
shm_buffer = wl_shm_buffer_get(buff->wl.resource);
|
|
||||||
bw = wl_shm_buffer_get_width(shm_buffer);
|
|
||||||
bh = wl_shm_buffer_get_height(shm_buffer);
|
|
||||||
}
|
}
|
||||||
|
e_pixmap_dirty(ews->pixmap);
|
||||||
|
e_pixmap_refresh(ews->pixmap);
|
||||||
|
e_pixmap_size_get(ews->pixmap, &bw, &bh);
|
||||||
|
|
||||||
/* if we have a new pending buffer, call configure */
|
/* if we have a new pending buffer, call configure */
|
||||||
if ((ews->configure) && (ews->pending.new_buffer))
|
if ((ews->configure) && (ews->pending.new_buffer))
|
||||||
|
@ -2849,15 +2802,18 @@ _e_comp_wl_surface_cb_commit(struct wl_client *client EINA_UNUSED, struct wl_res
|
||||||
pixman_region32_init(&ews->pending.damage);
|
pixman_region32_init(&ews->pending.damage);
|
||||||
|
|
||||||
/* get the extent of the damage region */
|
/* get the extent of the damage region */
|
||||||
rects = pixman_region32_rectangles(&ews->region.damage, &n);
|
if (ews->ec)
|
||||||
while (n--)
|
|
||||||
{
|
{
|
||||||
pixman_box32_t *r;
|
rects = pixman_region32_rectangles(&ews->region.damage, &n);
|
||||||
|
while (n--)
|
||||||
|
{
|
||||||
|
pixman_box32_t *r;
|
||||||
|
|
||||||
r = &rects[n];
|
r = &rects[n];
|
||||||
|
|
||||||
/* send damages to the image */
|
/* send damages to the image */
|
||||||
e_surface_damage_add(ews->obj, r->x1, r->y1, r->x2, r->y2);
|
e_comp_object_damage(ews->ec->frame, r->x1, r->y1, r->x2, r->y2);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* tell pixman we are finished with this region */
|
/* tell pixman we are finished with this region */
|
||||||
|
@ -2898,9 +2854,9 @@ _e_comp_wl_surface_cb_commit(struct wl_client *client EINA_UNUSED, struct wl_res
|
||||||
rects = pixman_region32_extents(&ews->region.input);
|
rects = pixman_region32_extents(&ews->region.input);
|
||||||
|
|
||||||
/* update the smart object's input region */
|
/* update the smart object's input region */
|
||||||
if (ews->obj)
|
if (ews->ec)
|
||||||
e_surface_input_set(ews->obj, rects->x1, rects->y1,
|
e_comp_object_input_area_set(ews->ec->frame, rects->x1, rects->y1,
|
||||||
rects->x2, rects->y2);
|
rects->x2, rects->y2);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* put any pending frame callbacks into active list */
|
/* put any pending frame callbacks into active list */
|
||||||
|
@ -2909,6 +2865,10 @@ _e_comp_wl_surface_cb_commit(struct wl_client *client EINA_UNUSED, struct wl_res
|
||||||
/* clear list of pending frame callbacks */
|
/* clear list of pending frame callbacks */
|
||||||
wl_list_init(&ews->pending.frames);
|
wl_list_init(&ews->pending.frames);
|
||||||
|
|
||||||
|
ews->updates = 1;
|
||||||
|
|
||||||
|
_e_wl_comp->surfaces = eina_inlist_promote(_e_wl_comp->surfaces, EINA_INLIST_GET(ews));
|
||||||
|
|
||||||
/* TODO: schedule repaint ?? */
|
/* TODO: schedule repaint ?? */
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -5,7 +5,6 @@
|
||||||
# define E_COMP_WL_H
|
# define E_COMP_WL_H
|
||||||
|
|
||||||
# define WL_HIDE_DEPRECATED
|
# define WL_HIDE_DEPRECATED
|
||||||
|
|
||||||
# include <pixman.h>
|
# include <pixman.h>
|
||||||
# include <wayland-server.h>
|
# include <wayland-server.h>
|
||||||
# include <xkbcommon/xkbcommon.h>
|
# include <xkbcommon/xkbcommon.h>
|
||||||
|
@ -253,6 +252,7 @@ struct _E_Wayland_Surface_Frame_Callback
|
||||||
|
|
||||||
struct _E_Wayland_Buffer
|
struct _E_Wayland_Buffer
|
||||||
{
|
{
|
||||||
|
EINA_INLIST;
|
||||||
struct
|
struct
|
||||||
{
|
{
|
||||||
struct wl_resource *resource;
|
struct wl_resource *resource;
|
||||||
|
@ -267,6 +267,7 @@ struct _E_Wayland_Buffer
|
||||||
|
|
||||||
int w, h;
|
int w, h;
|
||||||
unsigned int busy_count;
|
unsigned int busy_count;
|
||||||
|
E_Wayland_Surface *ews;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct _E_Wayland_Buffer_Reference
|
struct _E_Wayland_Buffer_Reference
|
||||||
|
@ -281,6 +282,7 @@ struct _E_Wayland_Surface
|
||||||
Ecore_Window id;
|
Ecore_Window id;
|
||||||
struct
|
struct
|
||||||
{
|
{
|
||||||
|
struct wl_client *client;
|
||||||
struct wl_resource *surface;
|
struct wl_resource *surface;
|
||||||
struct wl_signal destroy_signal;
|
struct wl_signal destroy_signal;
|
||||||
struct wl_list link, frames;
|
struct wl_list link, frames;
|
||||||
|
@ -311,18 +313,13 @@ struct _E_Wayland_Surface
|
||||||
pixman_region32_t damage, clip;
|
pixman_region32_t damage, clip;
|
||||||
} region;
|
} region;
|
||||||
|
|
||||||
/* smart object for this surface */
|
E_Client *ec;
|
||||||
Evas_Object *obj;
|
E_Pixmap *pixmap;
|
||||||
|
Eina_Inlist *buffers;
|
||||||
Ecore_Evas *ee;
|
|
||||||
Ecore_X_Window evas_win;
|
|
||||||
Evas *evas;
|
|
||||||
|
|
||||||
E_Border *bd;
|
|
||||||
Eina_List *bd_hooks;
|
|
||||||
|
|
||||||
E_Wayland_Shell_Surface *shell_surface;
|
E_Wayland_Shell_Surface *shell_surface;
|
||||||
Eina_Bool mapped : 1;
|
Eina_Bool mapped : 1;
|
||||||
|
Eina_Bool updates : 1; //surface has render updates
|
||||||
|
|
||||||
E_Wayland_Input *input;
|
E_Wayland_Input *input;
|
||||||
|
|
||||||
|
@ -367,7 +364,7 @@ struct _E_Wayland_Shell_Surface
|
||||||
E_Wayland_Surface *surface, *parent;
|
E_Wayland_Surface *surface, *parent;
|
||||||
E_Wayland_Shell_Surface_Type type, next_type;
|
E_Wayland_Shell_Surface_Type type, next_type;
|
||||||
|
|
||||||
char *title, *clas;
|
Eina_Stringshare *title, *clas;
|
||||||
|
|
||||||
Eina_Bool active : 1;
|
Eina_Bool active : 1;
|
||||||
|
|
||||||
|
@ -476,6 +473,15 @@ struct _E_Wayland_Compositor
|
||||||
|
|
||||||
E_Wayland_Shell_Interface shell_interface;
|
E_Wayland_Shell_Interface shell_interface;
|
||||||
|
|
||||||
|
#ifdef WAYLAND_ONLY
|
||||||
|
Eina_Bool focus : 1;
|
||||||
|
|
||||||
|
unsigned int output_pool;
|
||||||
|
|
||||||
|
struct xkb_rule_names xkb_names;
|
||||||
|
struct xkb_context *xkb_context;
|
||||||
|
#endif
|
||||||
|
|
||||||
Ecore_Event_Handler *kbd_handler;
|
Ecore_Event_Handler *kbd_handler;
|
||||||
Ecore_Fd_Handler *fd_handler;
|
Ecore_Fd_Handler *fd_handler;
|
||||||
Ecore_Idler *idler;
|
Ecore_Idler *idler;
|
||||||
|
@ -484,9 +490,7 @@ struct _E_Wayland_Compositor
|
||||||
|
|
||||||
Eina_Inlist *surfaces;
|
Eina_Inlist *surfaces;
|
||||||
Eina_List *seats;
|
Eina_List *seats;
|
||||||
|
|
||||||
struct wl_list outputs;
|
|
||||||
|
|
||||||
void (*ping_cb) (E_Wayland_Surface *ews, unsigned int serial);
|
void (*ping_cb) (E_Wayland_Surface *ews, unsigned int serial);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -585,12 +589,12 @@ struct _E_Wayland_Plane
|
||||||
/* external variables */
|
/* external variables */
|
||||||
extern EAPI E_Wayland_Compositor *_e_wl_comp;
|
extern EAPI E_Wayland_Compositor *_e_wl_comp;
|
||||||
|
|
||||||
EINTERN Eina_Bool e_comp_wl_init(void);
|
EAPI Eina_Bool e_comp_wl_init(void);
|
||||||
EINTERN void e_comp_wl_shutdown(void);
|
EINTERN void e_comp_wl_shutdown(void);
|
||||||
|
|
||||||
EAPI void e_comp_wl_border_surface_add(Ecore_Window win, const E_Border *bd);
|
#ifdef WAYLAND_ONLY
|
||||||
EAPI void e_comp_wl_border_surface_del(Ecore_Window win);
|
EAPI int e_comp_wl_input_read(int fd EINA_UNUSED, unsigned int mask EINA_UNUSED, void *data);
|
||||||
EAPI E_Border *e_comp_wl_border_surface_find(Ecore_Window win);
|
#endif
|
||||||
|
|
||||||
EAPI void wl_seat_init(struct wl_seat *seat);
|
EAPI void wl_seat_init(struct wl_seat *seat);
|
||||||
EAPI void wl_seat_release(struct wl_seat *seat);
|
EAPI void wl_seat_release(struct wl_seat *seat);
|
||||||
|
@ -621,5 +625,8 @@ EAPI void wl_seat_set_selection(struct wl_seat *seat, struct wl_data_source *sou
|
||||||
EAPI unsigned int e_comp_wl_time_get(void);
|
EAPI unsigned int e_comp_wl_time_get(void);
|
||||||
EAPI void e_comp_wl_input_modifiers_update(unsigned int serial);
|
EAPI void e_comp_wl_input_modifiers_update(unsigned int serial);
|
||||||
|
|
||||||
|
EAPI void e_comp_wl_mouse_button(struct wl_resource *resource, uint32_t serial, uint32_t timestamp, uint32_t button, uint32_t state_w);
|
||||||
|
EAPI Eina_Bool e_comp_wl_cb_keymap_changed(void *data EINA_UNUSED, int type EINA_UNUSED, void *event EINA_UNUSED);
|
||||||
|
|
||||||
# endif
|
# endif
|
||||||
#endif
|
#endif
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,113 @@
|
||||||
|
#ifdef E_TYPEDEFS
|
||||||
|
# include <Ecore_X.h>
|
||||||
|
# include "e_atoms.h"
|
||||||
|
# include "e_hints.h"
|
||||||
|
# include "e_randr.h"
|
||||||
|
|
||||||
|
#else
|
||||||
|
# ifndef E_COMP_X_H
|
||||||
|
# define E_COMP_X_H
|
||||||
|
# include <Ecore_X.h>
|
||||||
|
# include "e_atoms.h"
|
||||||
|
# include "e_hints.h"
|
||||||
|
# include "e_randr.h"
|
||||||
|
|
||||||
|
struct _E_Comp_Client_Data
|
||||||
|
{
|
||||||
|
Ecore_X_Window lock_win;
|
||||||
|
|
||||||
|
Ecore_X_Damage damage; // damage region
|
||||||
|
Ecore_X_Visual vis; // window visual
|
||||||
|
Ecore_X_Colormap cmap; // colormap of window
|
||||||
|
|
||||||
|
#if 0 //NOT USED
|
||||||
|
Ecore_X_Pixmap cache_pixmap; // the cached pixmap (1/nth the dimensions)
|
||||||
|
int cache_w, cache_h; // cached pixmap size
|
||||||
|
#endif
|
||||||
|
|
||||||
|
Ecore_X_Image *xim; // x image - software fallback
|
||||||
|
Ecore_X_Sync_Alarm alarm;
|
||||||
|
Ecore_X_Sync_Counter sync_counter; // netwm sync counter
|
||||||
|
|
||||||
|
unsigned char misses; // number of sync misses
|
||||||
|
|
||||||
|
Ecore_X_Window_Attributes initial_attributes;
|
||||||
|
|
||||||
|
unsigned int move_counter; //reduce X calls when moving a window
|
||||||
|
unsigned int internal_props_set; //don't need to refetch our own internal props
|
||||||
|
|
||||||
|
struct
|
||||||
|
{
|
||||||
|
struct
|
||||||
|
{
|
||||||
|
struct
|
||||||
|
{
|
||||||
|
unsigned char conformant : 1;
|
||||||
|
} fetch;
|
||||||
|
unsigned char conformant : 1;
|
||||||
|
} conformant;
|
||||||
|
struct
|
||||||
|
{
|
||||||
|
struct
|
||||||
|
{
|
||||||
|
unsigned char state : 1;
|
||||||
|
struct
|
||||||
|
{
|
||||||
|
unsigned int major : 1;
|
||||||
|
unsigned int minor : 1;
|
||||||
|
} priority;
|
||||||
|
unsigned char quickpanel : 1;
|
||||||
|
unsigned char zone : 1;
|
||||||
|
} fetch;
|
||||||
|
Ecore_X_Illume_Quickpanel_State state;
|
||||||
|
struct
|
||||||
|
{
|
||||||
|
unsigned int major : 1;
|
||||||
|
unsigned int minor : 1;
|
||||||
|
} priority;
|
||||||
|
unsigned char quickpanel : 1;
|
||||||
|
int zone;
|
||||||
|
} quickpanel;
|
||||||
|
struct
|
||||||
|
{
|
||||||
|
struct
|
||||||
|
{
|
||||||
|
unsigned char drag : 1;
|
||||||
|
unsigned char locked : 1;
|
||||||
|
} fetch;
|
||||||
|
unsigned char drag : 1;
|
||||||
|
unsigned char locked : 1;
|
||||||
|
} drag;
|
||||||
|
struct
|
||||||
|
{
|
||||||
|
struct
|
||||||
|
{
|
||||||
|
unsigned char state : 1;
|
||||||
|
} fetch;
|
||||||
|
Ecore_X_Illume_Window_State state;
|
||||||
|
} win_state;
|
||||||
|
} illume;
|
||||||
|
|
||||||
|
Eina_Bool moving : 1;
|
||||||
|
Eina_Bool first_map : 1;
|
||||||
|
Eina_Bool change_icon : 1;
|
||||||
|
Eina_Bool need_reparent : 1;
|
||||||
|
Eina_Bool reparented : 1;
|
||||||
|
Eina_Bool deleted : 1;
|
||||||
|
Eina_Bool button_grabbed : 1;
|
||||||
|
Eina_Bool fetch_exe : 1;
|
||||||
|
Eina_Bool set_win_type : 1;
|
||||||
|
Eina_Bool frame_update : 1;
|
||||||
|
|
||||||
|
#ifdef COMP_X_SHAPE_INPUT_ERROR_CATCH
|
||||||
|
double last_input_time;
|
||||||
|
unsigned last_input_within_10;
|
||||||
|
#endif
|
||||||
|
};
|
||||||
|
|
||||||
|
EINTERN Eina_Bool e_comp_x_init(void);
|
||||||
|
EINTERN void e_comp_x_shutdown(void);
|
||||||
|
|
||||||
|
EAPI void e_alert_composite_win(Ecore_X_Window root, Ecore_X_Window win);
|
||||||
|
# endif
|
||||||
|
#endif
|
|
@ -1,6 +1,6 @@
|
||||||
#include "e.h"
|
#include "e.h"
|
||||||
|
|
||||||
#if ((E18_PROFILE >= LOWRES_PDA) && (E18_PROFILE <= HIRES_PDA))
|
#if ((E19_PROFILE >= LOWRES_PDA) && (E19_PROFILE <= HIRES_PDA))
|
||||||
#define DEF_MENUCLICK 1.25
|
#define DEF_MENUCLICK 1.25
|
||||||
#else
|
#else
|
||||||
#define DEF_MENUCLICK 0.25
|
#define DEF_MENUCLICK 0.25
|
||||||
|
@ -173,7 +173,8 @@ _e_config_edd_init(Eina_Bool old)
|
||||||
#define D _e_config_shelf_edd
|
#define D _e_config_shelf_edd
|
||||||
E_CONFIG_VAL(D, T, name, STR);
|
E_CONFIG_VAL(D, T, name, STR);
|
||||||
E_CONFIG_VAL(D, T, id, INT);
|
E_CONFIG_VAL(D, T, id, INT);
|
||||||
E_CONFIG_VAL(D, T, container, INT);
|
EET_DATA_DESCRIPTOR_ADD_BASIC(D, T, "container", manager, EET_T_INT);
|
||||||
|
E_CONFIG_VAL(D, T, manager /*container */, INT);
|
||||||
E_CONFIG_VAL(D, T, zone, INT);
|
E_CONFIG_VAL(D, T, zone, INT);
|
||||||
E_CONFIG_VAL(D, T, layer, INT);
|
E_CONFIG_VAL(D, T, layer, INT);
|
||||||
E_CONFIG_VAL(D, T, popup, UCHAR);
|
E_CONFIG_VAL(D, T, popup, UCHAR);
|
||||||
|
@ -202,7 +203,8 @@ _e_config_edd_init(Eina_Bool old)
|
||||||
#undef D
|
#undef D
|
||||||
#define T E_Config_Desktop_Background
|
#define T E_Config_Desktop_Background
|
||||||
#define D _e_config_desktop_bg_edd
|
#define D _e_config_desktop_bg_edd
|
||||||
E_CONFIG_VAL(D, T, container, INT);
|
EET_DATA_DESCRIPTOR_ADD_BASIC(D, T, "container", manager, EET_T_INT);
|
||||||
|
E_CONFIG_VAL(D, T, manager /*container */, INT);
|
||||||
E_CONFIG_VAL(D, T, zone, INT);
|
E_CONFIG_VAL(D, T, zone, INT);
|
||||||
E_CONFIG_VAL(D, T, desk_x, INT);
|
E_CONFIG_VAL(D, T, desk_x, INT);
|
||||||
E_CONFIG_VAL(D, T, desk_y, INT);
|
E_CONFIG_VAL(D, T, desk_y, INT);
|
||||||
|
@ -213,7 +215,8 @@ _e_config_edd_init(Eina_Bool old)
|
||||||
#undef D
|
#undef D
|
||||||
#define T E_Config_Desktop_Name
|
#define T E_Config_Desktop_Name
|
||||||
#define D _e_config_desktop_name_edd
|
#define D _e_config_desktop_name_edd
|
||||||
E_CONFIG_VAL(D, T, container, INT);
|
EET_DATA_DESCRIPTOR_ADD_BASIC(D, T, "container", manager, EET_T_INT);
|
||||||
|
E_CONFIG_VAL(D, T, manager /*container */, INT);
|
||||||
E_CONFIG_VAL(D, T, zone, INT);
|
E_CONFIG_VAL(D, T, zone, INT);
|
||||||
E_CONFIG_VAL(D, T, desk_x, INT);
|
E_CONFIG_VAL(D, T, desk_x, INT);
|
||||||
E_CONFIG_VAL(D, T, desk_y, INT);
|
E_CONFIG_VAL(D, T, desk_y, INT);
|
||||||
|
@ -224,7 +227,7 @@ _e_config_edd_init(Eina_Bool old)
|
||||||
#undef D
|
#undef D
|
||||||
#define T E_Config_Desktop_Window_Profile
|
#define T E_Config_Desktop_Window_Profile
|
||||||
#define D _e_config_desktop_window_profile_edd
|
#define D _e_config_desktop_window_profile_edd
|
||||||
E_CONFIG_VAL(D, T, container, INT);
|
E_CONFIG_VAL(D, T, manager, INT);
|
||||||
E_CONFIG_VAL(D, T, zone, INT);
|
E_CONFIG_VAL(D, T, zone, INT);
|
||||||
E_CONFIG_VAL(D, T, desk_x, INT);
|
E_CONFIG_VAL(D, T, desk_x, INT);
|
||||||
E_CONFIG_VAL(D, T, desk_y, INT);
|
E_CONFIG_VAL(D, T, desk_y, INT);
|
||||||
|
@ -237,14 +240,6 @@ _e_config_edd_init(Eina_Bool old)
|
||||||
#define D _e_config_path_append_edd
|
#define D _e_config_path_append_edd
|
||||||
E_CONFIG_VAL(D, T, dir, STR);
|
E_CONFIG_VAL(D, T, dir, STR);
|
||||||
|
|
||||||
_e_config_theme_edd = E_CONFIG_DD_NEW("E_Config_Theme", E_Config_Theme);
|
|
||||||
#undef T
|
|
||||||
#undef D
|
|
||||||
#define T E_Config_Theme
|
|
||||||
#define D _e_config_theme_edd
|
|
||||||
E_CONFIG_VAL(D, T, category, STR);
|
|
||||||
E_CONFIG_VAL(D, T, file, STR);
|
|
||||||
|
|
||||||
_e_config_module_edd = E_CONFIG_DD_NEW("E_Config_Module", E_Config_Module);
|
_e_config_module_edd = E_CONFIG_DD_NEW("E_Config_Module", E_Config_Module);
|
||||||
#undef T
|
#undef T
|
||||||
#undef D
|
#undef D
|
||||||
|
@ -427,7 +422,6 @@ _e_config_edd_init(Eina_Bool old)
|
||||||
E_CONFIG_VAL(D, T, config_version, INT); /**/
|
E_CONFIG_VAL(D, T, config_version, INT); /**/
|
||||||
E_CONFIG_VAL(D, T, config_type, UINT); /**/
|
E_CONFIG_VAL(D, T, config_type, UINT); /**/
|
||||||
E_CONFIG_VAL(D, T, show_splash, INT); /**/
|
E_CONFIG_VAL(D, T, show_splash, INT); /**/
|
||||||
E_CONFIG_VAL(D, T, init_default_theme, STR); /**/
|
|
||||||
E_CONFIG_VAL(D, T, desktop_default_background, STR); /**/
|
E_CONFIG_VAL(D, T, desktop_default_background, STR); /**/
|
||||||
E_CONFIG_VAL(D, T, desktop_default_name, STR); /**/
|
E_CONFIG_VAL(D, T, desktop_default_name, STR); /**/
|
||||||
E_CONFIG_VAL(D, T, desktop_default_window_profile, STR); /**/
|
E_CONFIG_VAL(D, T, desktop_default_window_profile, STR); /**/
|
||||||
|
@ -458,7 +452,6 @@ _e_config_edd_init(Eina_Bool old)
|
||||||
EET_DATA_DESCRIPTOR_ADD_LIST_STRING(D, T, "bad_modules", bad_modules);
|
EET_DATA_DESCRIPTOR_ADD_LIST_STRING(D, T, "bad_modules", bad_modules);
|
||||||
E_CONFIG_LIST(D, T, font_fallbacks, _e_config_font_fallback_edd); /**/
|
E_CONFIG_LIST(D, T, font_fallbacks, _e_config_font_fallback_edd); /**/
|
||||||
E_CONFIG_LIST(D, T, font_defaults, _e_config_font_default_edd); /**/
|
E_CONFIG_LIST(D, T, font_defaults, _e_config_font_default_edd); /**/
|
||||||
E_CONFIG_LIST(D, T, themes, _e_config_theme_edd); /**/
|
|
||||||
E_CONFIG_LIST(D, T, mouse_bindings, _e_config_bindings_mouse_edd); /**/
|
E_CONFIG_LIST(D, T, mouse_bindings, _e_config_bindings_mouse_edd); /**/
|
||||||
E_CONFIG_LIST(D, T, key_bindings, _e_config_bindings_key_edd); /**/
|
E_CONFIG_LIST(D, T, key_bindings, _e_config_bindings_key_edd); /**/
|
||||||
E_CONFIG_LIST(D, T, edge_bindings, _e_config_bindings_edge_edd); /**/
|
E_CONFIG_LIST(D, T, edge_bindings, _e_config_bindings_edge_edd); /**/
|
||||||
|
@ -468,7 +461,6 @@ _e_config_edd_init(Eina_Bool old)
|
||||||
E_CONFIG_LIST(D, T, path_append_data, _e_config_path_append_edd); /**/
|
E_CONFIG_LIST(D, T, path_append_data, _e_config_path_append_edd); /**/
|
||||||
E_CONFIG_LIST(D, T, path_append_images, _e_config_path_append_edd); /**/
|
E_CONFIG_LIST(D, T, path_append_images, _e_config_path_append_edd); /**/
|
||||||
E_CONFIG_LIST(D, T, path_append_fonts, _e_config_path_append_edd); /**/
|
E_CONFIG_LIST(D, T, path_append_fonts, _e_config_path_append_edd); /**/
|
||||||
E_CONFIG_LIST(D, T, path_append_themes, _e_config_path_append_edd); /**/
|
|
||||||
E_CONFIG_LIST(D, T, path_append_init, _e_config_path_append_edd); /**/
|
E_CONFIG_LIST(D, T, path_append_init, _e_config_path_append_edd); /**/
|
||||||
E_CONFIG_LIST(D, T, path_append_icons, _e_config_path_append_edd); /**/
|
E_CONFIG_LIST(D, T, path_append_icons, _e_config_path_append_edd); /**/
|
||||||
E_CONFIG_LIST(D, T, path_append_modules, _e_config_path_append_edd); /**/
|
E_CONFIG_LIST(D, T, path_append_modules, _e_config_path_append_edd); /**/
|
||||||
|
@ -565,8 +557,8 @@ _e_config_edd_init(Eina_Bool old)
|
||||||
E_CONFIG_LIST(D, T, gadcons, _e_config_gadcon_edd);
|
E_CONFIG_LIST(D, T, gadcons, _e_config_gadcon_edd);
|
||||||
E_CONFIG_LIST(D, T, shelves, _e_config_shelf_edd);
|
E_CONFIG_LIST(D, T, shelves, _e_config_shelf_edd);
|
||||||
E_CONFIG_VAL(D, T, font_hinting, INT); /**/
|
E_CONFIG_VAL(D, T, font_hinting, INT); /**/
|
||||||
E_CONFIG_VAL(D, T, desklock_personal_passwd, STR);
|
E_CONFIG_VAL(D, T, desklock_passwd, INT);
|
||||||
E_CONFIG_VAL(D, T, desklock_background, STR);
|
E_CONFIG_VAL(D, T, desklock_pin, INT);
|
||||||
E_CONFIG_LIST(D, T, desklock_backgrounds, _e_config_desklock_bg_edd); /**/
|
E_CONFIG_LIST(D, T, desklock_backgrounds, _e_config_desklock_bg_edd); /**/
|
||||||
E_CONFIG_VAL(D, T, desklock_auth_method, INT);
|
E_CONFIG_VAL(D, T, desklock_auth_method, INT);
|
||||||
E_CONFIG_VAL(D, T, desklock_login_box_zone, INT);
|
E_CONFIG_VAL(D, T, desklock_login_box_zone, INT);
|
||||||
|
@ -1232,29 +1224,35 @@ e_config_load(void)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
CONFIG_VERSION_CHECK(13)
|
CONFIG_VERSION_CHECK(14)
|
||||||
{
|
{
|
||||||
E_Config_Theme *et;
|
Eina_List *files, *l;
|
||||||
E_Path_Dir *epd;
|
|
||||||
char buf[PATH_MAX], buf2[PATH_MAX], *f;
|
|
||||||
Eina_List *files;
|
|
||||||
Eina_Bool fail = EINA_FALSE;
|
Eina_Bool fail = EINA_FALSE;
|
||||||
|
E_Config_Shelf *cf_es;
|
||||||
|
E_Remember *rem;
|
||||||
|
char buf[PATH_MAX], buf2[PATH_MAX], *f;
|
||||||
|
|
||||||
CONFIG_VERSION_UPDATE_INFO(13);
|
CONFIG_VERSION_UPDATE_INFO(14);
|
||||||
// empty out theme elements of config
|
|
||||||
eina_stringshare_del(e_config->init_default_theme);
|
EINA_LIST_FOREACH(e_config->shelves, l, cf_es)
|
||||||
e_config->init_default_theme = NULL;
|
|
||||||
EINA_LIST_FREE(e_config->themes, et)
|
|
||||||
{
|
{
|
||||||
if (et->category) eina_stringshare_del(et->category);
|
if (cf_es->popup)
|
||||||
if (et->file) eina_stringshare_del(et->file);
|
{
|
||||||
E_FREE(et);
|
if (cf_es->layer)
|
||||||
}
|
cf_es->layer = E_LAYER_CLIENT_ABOVE;
|
||||||
EINA_LIST_FREE(e_config->path_append_themes, epd)
|
else
|
||||||
{
|
cf_es->layer = E_LAYER_CLIENT_DESKTOP;
|
||||||
if (epd->dir) eina_stringshare_del(epd->dir);
|
}
|
||||||
E_FREE(epd);
|
else if (!cf_es->layer)
|
||||||
|
cf_es->layer = E_LAYER_DESKTOP; //redundant, but whatever
|
||||||
|
cf_es->popup = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* E19 layer values are higher */
|
||||||
|
EINA_LIST_FOREACH(e_config->remembers, l, rem)
|
||||||
|
if (rem->apply & E_REMEMBER_APPLY_LAYER)
|
||||||
|
rem->prop.layer += 100;
|
||||||
|
|
||||||
// copy all of ~/.e/e/themes/* into ~/.elementary/themes
|
// copy all of ~/.e/e/themes/* into ~/.elementary/themes
|
||||||
// and delete original data in ~/.e/e/themes
|
// and delete original data in ~/.e/e/themes
|
||||||
ecore_file_mkpath(elm_theme_user_dir_get());
|
ecore_file_mkpath(elm_theme_user_dir_get());
|
||||||
|
@ -1274,6 +1272,32 @@ e_config_load(void)
|
||||||
ecore_file_recursive_rm(buf);
|
ecore_file_recursive_rm(buf);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
CONFIG_VERSION_CHECK(15)
|
||||||
|
{
|
||||||
|
E_Config_Module *em;
|
||||||
|
Eina_List *l;
|
||||||
|
Eina_Bool found = EINA_FALSE;
|
||||||
|
|
||||||
|
CONFIG_VERSION_UPDATE_INFO(15);
|
||||||
|
if (e_config->desklock_use_custom_desklock)
|
||||||
|
e_config->desklock_auth_method = E_DESKLOCK_AUTH_METHOD_EXTERNAL;
|
||||||
|
|
||||||
|
EINA_LIST_FOREACH(e_config->modules, l, em)
|
||||||
|
if (!strcmp(em->name, "lokker"))
|
||||||
|
{
|
||||||
|
found = EINA_TRUE;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
if (!found)
|
||||||
|
{
|
||||||
|
/* add new desklock module */
|
||||||
|
em = E_NEW(E_Config_Module, 1);
|
||||||
|
em->name = eina_stringshare_add("lokker");
|
||||||
|
em->enabled = 1;
|
||||||
|
em->delayed = 0;
|
||||||
|
e_config->modules = eina_list_append(e_config->modules, em);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (!e_config->remember_internal_fm_windows)
|
if (!e_config->remember_internal_fm_windows)
|
||||||
e_config->remember_internal_fm_windows = !!(e_config->remember_internal_windows & E_REMEMBER_INTERNAL_FM_WINS);
|
e_config->remember_internal_fm_windows = !!(e_config->remember_internal_windows & E_REMEMBER_INTERNAL_FM_WINS);
|
||||||
|
@ -1458,11 +1482,6 @@ e_config_load(void)
|
||||||
|
|
||||||
/* FIXME: disabled auto apply because it causes problems */
|
/* FIXME: disabled auto apply because it causes problems */
|
||||||
e_config->cfgdlg_auto_apply = 0;
|
e_config->cfgdlg_auto_apply = 0;
|
||||||
/* FIXME: desklock personalized password id disabled for security reasons */
|
|
||||||
e_config->desklock_auth_method = 0;
|
|
||||||
if (e_config->desklock_personal_passwd)
|
|
||||||
eina_stringshare_del(e_config->desklock_personal_passwd);
|
|
||||||
e_config->desklock_personal_passwd = NULL;
|
|
||||||
|
|
||||||
ecore_event_add(E_EVENT_CONFIG_LOADED, NULL, NULL, NULL);
|
ecore_event_add(E_EVENT_CONFIG_LOADED, NULL, NULL, NULL);
|
||||||
}
|
}
|
||||||
|
@ -1697,38 +1716,34 @@ e_config_domain_system_load(const char *domain, E_Config_DD *edd)
|
||||||
static void
|
static void
|
||||||
_e_config_mv_error(const char *from, const char *to)
|
_e_config_mv_error(const char *from, const char *to)
|
||||||
{
|
{
|
||||||
if (!_e_config_error_dialog)
|
E_Dialog *dia;
|
||||||
{
|
char buf[8192];
|
||||||
E_Dialog *dia;
|
|
||||||
|
|
||||||
dia = e_dialog_new(e_container_current_get(e_manager_current_get()),
|
if (_e_config_error_dialog) return;
|
||||||
"E", "_sys_error_logout_slow");
|
|
||||||
if (dia)
|
|
||||||
{
|
|
||||||
char buf[8192];
|
|
||||||
|
|
||||||
e_dialog_title_set(dia, _("Enlightenment Settings Write Problems"));
|
dia = e_dialog_new(NULL, "E", "_sys_error_logout_slow");
|
||||||
e_dialog_icon_set(dia, "dialog-error", 64);
|
EINA_SAFETY_ON_NULL_RETURN(dia);
|
||||||
snprintf(buf, sizeof(buf),
|
|
||||||
_("Enlightenment has had an error while moving config files<br>"
|
e_dialog_title_set(dia, _("Enlightenment Settings Write Problems"));
|
||||||
"from:<br>"
|
e_dialog_icon_set(dia, "dialog-error", 64);
|
||||||
"%s<br>"
|
snprintf(buf, sizeof(buf),
|
||||||
"<br>"
|
_("Enlightenment has had an error while moving config files<br>"
|
||||||
"to:<br>"
|
"from:<br>"
|
||||||
"%s<br>"
|
"%s<br>"
|
||||||
"<br>"
|
"<br>"
|
||||||
"The rest of the write has been aborted for safety.<br>"),
|
"to:<br>"
|
||||||
from, to);
|
"%s<br>"
|
||||||
e_dialog_text_set(dia, buf);
|
"<br>"
|
||||||
e_dialog_button_add(dia, _("OK"), NULL, NULL, NULL);
|
"The rest of the write has been aborted for safety.<br>"),
|
||||||
e_dialog_button_focus_num(dia, 0);
|
from, to);
|
||||||
e_win_centered_set(dia->win, 1);
|
e_dialog_text_set(dia, buf);
|
||||||
e_object_del_attach_func_set(E_OBJECT(dia),
|
e_dialog_button_add(dia, _("OK"), NULL, NULL, NULL);
|
||||||
_e_config_error_dialog_cb_delete);
|
e_dialog_button_focus_num(dia, 0);
|
||||||
e_dialog_show(dia);
|
e_win_centered_set(dia->win, 1);
|
||||||
_e_config_error_dialog = dia;
|
e_object_del_attach_func_set(E_OBJECT(dia),
|
||||||
}
|
_e_config_error_dialog_cb_delete);
|
||||||
}
|
e_dialog_show(dia);
|
||||||
|
_e_config_error_dialog = dia;
|
||||||
}
|
}
|
||||||
|
|
||||||
EAPI int
|
EAPI int
|
||||||
|
@ -2090,7 +2105,6 @@ _e_config_free(E_Config *ecf)
|
||||||
E_Font_Fallback *eff;
|
E_Font_Fallback *eff;
|
||||||
E_Config_Module *em;
|
E_Config_Module *em;
|
||||||
E_Font_Default *efd;
|
E_Font_Default *efd;
|
||||||
E_Config_Theme *et;
|
|
||||||
E_Color_Class *cc;
|
E_Color_Class *cc;
|
||||||
E_Path_Dir *epd;
|
E_Path_Dir *epd;
|
||||||
E_Remember *rem;
|
E_Remember *rem;
|
||||||
|
@ -2132,12 +2146,6 @@ _e_config_free(E_Config *ecf)
|
||||||
if (efd->font) eina_stringshare_del(efd->font);
|
if (efd->font) eina_stringshare_del(efd->font);
|
||||||
E_FREE(efd);
|
E_FREE(efd);
|
||||||
}
|
}
|
||||||
EINA_LIST_FREE(ecf->themes, et)
|
|
||||||
{
|
|
||||||
if (et->category) eina_stringshare_del(et->category);
|
|
||||||
if (et->file) eina_stringshare_del(et->file);
|
|
||||||
E_FREE(et);
|
|
||||||
}
|
|
||||||
EINA_LIST_FREE(ecf->path_append_data, epd)
|
EINA_LIST_FREE(ecf->path_append_data, epd)
|
||||||
{
|
{
|
||||||
if (epd->dir) eina_stringshare_del(epd->dir);
|
if (epd->dir) eina_stringshare_del(epd->dir);
|
||||||
|
@ -2153,11 +2161,6 @@ _e_config_free(E_Config *ecf)
|
||||||
if (epd->dir) eina_stringshare_del(epd->dir);
|
if (epd->dir) eina_stringshare_del(epd->dir);
|
||||||
E_FREE(epd);
|
E_FREE(epd);
|
||||||
}
|
}
|
||||||
EINA_LIST_FREE(ecf->path_append_themes, epd)
|
|
||||||
{
|
|
||||||
if (epd->dir) eina_stringshare_del(epd->dir);
|
|
||||||
E_FREE(epd);
|
|
||||||
}
|
|
||||||
EINA_LIST_FREE(ecf->path_append_init, epd)
|
EINA_LIST_FREE(ecf->path_append_init, epd)
|
||||||
{
|
{
|
||||||
if (epd->dir) eina_stringshare_del(epd->dir);
|
if (epd->dir) eina_stringshare_del(epd->dir);
|
||||||
|
@ -2205,7 +2208,6 @@ _e_config_free(E_Config *ecf)
|
||||||
if (cc->name) eina_stringshare_del(cc->name);
|
if (cc->name) eina_stringshare_del(cc->name);
|
||||||
E_FREE(cc);
|
E_FREE(cc);
|
||||||
}
|
}
|
||||||
if (ecf->init_default_theme) eina_stringshare_del(ecf->init_default_theme);
|
|
||||||
if (ecf->desktop_default_background) eina_stringshare_del(ecf->desktop_default_background);
|
if (ecf->desktop_default_background) eina_stringshare_del(ecf->desktop_default_background);
|
||||||
if (ecf->desktop_default_name) eina_stringshare_del(ecf->desktop_default_name);
|
if (ecf->desktop_default_name) eina_stringshare_del(ecf->desktop_default_name);
|
||||||
if (ecf->desktop_default_window_profile) eina_stringshare_del(ecf->desktop_default_window_profile);
|
if (ecf->desktop_default_window_profile) eina_stringshare_del(ecf->desktop_default_window_profile);
|
||||||
|
@ -2223,8 +2225,6 @@ _e_config_free(E_Config *ecf)
|
||||||
if (ecf->transition_change) eina_stringshare_del(ecf->transition_change);
|
if (ecf->transition_change) eina_stringshare_del(ecf->transition_change);
|
||||||
if (ecf->input_method) eina_stringshare_del(ecf->input_method);
|
if (ecf->input_method) eina_stringshare_del(ecf->input_method);
|
||||||
if (ecf->exebuf_term_cmd) eina_stringshare_del(ecf->exebuf_term_cmd);
|
if (ecf->exebuf_term_cmd) eina_stringshare_del(ecf->exebuf_term_cmd);
|
||||||
if (ecf->desklock_personal_passwd) eina_stringshare_del(ecf->desklock_personal_passwd);
|
|
||||||
if (ecf->desklock_background) eina_stringshare_del(ecf->desklock_background);
|
|
||||||
if (ecf->icon_theme) eina_stringshare_del(ecf->icon_theme);
|
if (ecf->icon_theme) eina_stringshare_del(ecf->icon_theme);
|
||||||
if (ecf->wallpaper_import_last_dev) eina_stringshare_del(ecf->wallpaper_import_last_dev);
|
if (ecf->wallpaper_import_last_dev) eina_stringshare_del(ecf->wallpaper_import_last_dev);
|
||||||
if (ecf->wallpaper_import_last_path) eina_stringshare_del(ecf->wallpaper_import_last_path);
|
if (ecf->wallpaper_import_last_path) eina_stringshare_del(ecf->wallpaper_import_last_path);
|
||||||
|
@ -2362,8 +2362,7 @@ _e_config_eet_close_handle(Eet_File *ef, char *file)
|
||||||
{
|
{
|
||||||
E_Dialog *dia;
|
E_Dialog *dia;
|
||||||
|
|
||||||
dia = e_dialog_new(e_container_current_get(e_manager_current_get()),
|
dia = e_dialog_new(NULL, "E", "_sys_error_logout_slow");
|
||||||
"E", "_sys_error_logout_slow");
|
|
||||||
if (dia)
|
if (dia)
|
||||||
{
|
{
|
||||||
char buf[8192];
|
char buf[8192];
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -4,7 +4,6 @@
|
||||||
|
|
||||||
typedef struct _E_Config E_Config;
|
typedef struct _E_Config E_Config;
|
||||||
typedef struct _E_Config_Module E_Config_Module;
|
typedef struct _E_Config_Module E_Config_Module;
|
||||||
typedef struct _E_Config_Theme E_Config_Theme;
|
|
||||||
typedef struct _E_Config_Binding_Mouse E_Config_Binding_Mouse;
|
typedef struct _E_Config_Binding_Mouse E_Config_Binding_Mouse;
|
||||||
typedef struct _E_Config_Binding_Key E_Config_Binding_Key;
|
typedef struct _E_Config_Binding_Key E_Config_Binding_Key;
|
||||||
typedef struct _E_Config_Binding_Edge E_Config_Binding_Edge;
|
typedef struct _E_Config_Binding_Edge E_Config_Binding_Edge;
|
||||||
|
@ -48,7 +47,7 @@ typedef enum
|
||||||
/* increment this whenever a new set of config values are added but the users
|
/* increment this whenever a new set of config values are added but the users
|
||||||
* config doesn't need to be wiped - simply new values need to be put in
|
* config doesn't need to be wiped - simply new values need to be put in
|
||||||
*/
|
*/
|
||||||
#define E_CONFIG_FILE_GENERATION 13
|
#define E_CONFIG_FILE_GENERATION 15
|
||||||
#define E_CONFIG_FILE_VERSION ((E_CONFIG_FILE_EPOCH * 1000000) + E_CONFIG_FILE_GENERATION)
|
#define E_CONFIG_FILE_VERSION ((E_CONFIG_FILE_EPOCH * 1000000) + E_CONFIG_FILE_GENERATION)
|
||||||
|
|
||||||
#define E_CONFIG_BINDINGS_VERSION 0 // DO NOT INCREMENT UNLESS YOU WANT TO WIPE ALL BINDINGS!!!!!
|
#define E_CONFIG_BINDINGS_VERSION 0 // DO NOT INCREMENT UNLESS YOU WANT TO WIPE ALL BINDINGS!!!!!
|
||||||
|
@ -58,7 +57,6 @@ struct _E_Config
|
||||||
int config_version; // INTERNAL
|
int config_version; // INTERNAL
|
||||||
E_Config_Profile_Type config_type; // INTERNAL
|
E_Config_Profile_Type config_type; // INTERNAL
|
||||||
int show_splash; // GUI
|
int show_splash; // GUI
|
||||||
const char *init_default_theme; // GUI
|
|
||||||
const char *desktop_default_background; // GUI
|
const char *desktop_default_background; // GUI
|
||||||
Eina_List *desktop_backgrounds; // GUI
|
Eina_List *desktop_backgrounds; // GUI
|
||||||
const char *desktop_default_name;
|
const char *desktop_default_name;
|
||||||
|
@ -89,7 +87,6 @@ struct _E_Config
|
||||||
Eina_List *bad_modules; // GUI
|
Eina_List *bad_modules; // GUI
|
||||||
Eina_List *font_fallbacks; // GUI
|
Eina_List *font_fallbacks; // GUI
|
||||||
Eina_List *font_defaults; // GUI
|
Eina_List *font_defaults; // GUI
|
||||||
Eina_List *themes; // GUI
|
|
||||||
|
|
||||||
/* NO LONGER SAVED WITH THIS STRUCT */
|
/* NO LONGER SAVED WITH THIS STRUCT */
|
||||||
Eina_List *mouse_bindings; // GUI
|
Eina_List *mouse_bindings; // GUI
|
||||||
|
@ -102,7 +99,6 @@ struct _E_Config
|
||||||
Eina_List *path_append_data; // GUI
|
Eina_List *path_append_data; // GUI
|
||||||
Eina_List *path_append_images; // GUI
|
Eina_List *path_append_images; // GUI
|
||||||
Eina_List *path_append_fonts; // GUI
|
Eina_List *path_append_fonts; // GUI
|
||||||
Eina_List *path_append_themes; // GUI
|
|
||||||
Eina_List *path_append_init; // GUI
|
Eina_List *path_append_init; // GUI
|
||||||
Eina_List *path_append_icons; // GUI
|
Eina_List *path_append_icons; // GUI
|
||||||
Eina_List *path_append_modules; // GUI
|
Eina_List *path_append_modules; // GUI
|
||||||
|
@ -206,8 +202,8 @@ struct _E_Config
|
||||||
Eina_List *shelves; // GUI
|
Eina_List *shelves; // GUI
|
||||||
int font_hinting; // GUI
|
int font_hinting; // GUI
|
||||||
|
|
||||||
const char *desklock_personal_passwd; // GUI
|
int desklock_passwd; // GUI // hashed
|
||||||
const char *desklock_background; // OLD DON'T USE
|
int desklock_pin; // GUI // hashed
|
||||||
Eina_List *desklock_backgrounds; // GUI
|
Eina_List *desklock_backgrounds; // GUI
|
||||||
int desklock_auth_method; // GUI
|
int desklock_auth_method; // GUI
|
||||||
int desklock_login_box_zone; // GUI
|
int desklock_login_box_zone; // GUI
|
||||||
|
@ -478,12 +474,6 @@ struct _E_Config_Module
|
||||||
int priority;
|
int priority;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct _E_Config_Theme
|
|
||||||
{
|
|
||||||
const char *category;
|
|
||||||
const char *file;
|
|
||||||
};
|
|
||||||
|
|
||||||
struct _E_Config_Binding_Mouse
|
struct _E_Config_Binding_Mouse
|
||||||
{
|
{
|
||||||
int context;
|
int context;
|
||||||
|
@ -546,7 +536,7 @@ struct _E_Config_Binding_Acpi
|
||||||
|
|
||||||
struct _E_Config_Desktop_Background
|
struct _E_Config_Desktop_Background
|
||||||
{
|
{
|
||||||
int container;
|
int manager;
|
||||||
int zone;
|
int zone;
|
||||||
int desk_x;
|
int desk_x;
|
||||||
int desk_y;
|
int desk_y;
|
||||||
|
@ -555,7 +545,7 @@ struct _E_Config_Desktop_Background
|
||||||
|
|
||||||
struct _E_Config_Desktop_Name
|
struct _E_Config_Desktop_Name
|
||||||
{
|
{
|
||||||
int container;
|
int manager;
|
||||||
int zone;
|
int zone;
|
||||||
int desk_x;
|
int desk_x;
|
||||||
int desk_y;
|
int desk_y;
|
||||||
|
@ -564,7 +554,7 @@ struct _E_Config_Desktop_Name
|
||||||
|
|
||||||
struct _E_Config_Desktop_Window_Profile
|
struct _E_Config_Desktop_Window_Profile
|
||||||
{
|
{
|
||||||
int container;
|
int manager;
|
||||||
int zone;
|
int zone;
|
||||||
int desk_x;
|
int desk_x;
|
||||||
int desk_y;
|
int desk_y;
|
||||||
|
@ -603,9 +593,9 @@ struct _E_Config_Shelf
|
||||||
{
|
{
|
||||||
const char *name;
|
const char *name;
|
||||||
int id;
|
int id;
|
||||||
int container, zone;
|
int manager, zone;
|
||||||
int layer;
|
int layer; //E_Layer
|
||||||
unsigned char popup;
|
unsigned char popup; //DEAD
|
||||||
int orient;
|
int orient;
|
||||||
unsigned char fit_along;
|
unsigned char fit_along;
|
||||||
unsigned char fit_size;
|
unsigned char fit_size;
|
||||||
|
|
|
@ -21,7 +21,7 @@ static Eina_List *_e_config_dialog_list = NULL;
|
||||||
/**
|
/**
|
||||||
* Creates a new dialog
|
* Creates a new dialog
|
||||||
*
|
*
|
||||||
* @param con the container the dialog will be added too
|
* @param c the compositor the dialog will be added to
|
||||||
* @param title to display for the dialog
|
* @param title to display for the dialog
|
||||||
* @param name the name used to register the window in e
|
* @param name the name used to register the window in e
|
||||||
* @param class the call used to register the window in e
|
* @param class the call used to register the window in e
|
||||||
|
@ -32,14 +32,14 @@ static Eina_List *_e_config_dialog_list = NULL;
|
||||||
* @return returns the created dialog. Null on failure
|
* @return returns the created dialog. Null on failure
|
||||||
*/
|
*/
|
||||||
EAPI E_Config_Dialog *
|
EAPI E_Config_Dialog *
|
||||||
e_config_dialog_new(E_Container *con, const char *title, const char *name, const char *class, const char *icon, int icon_size, E_Config_Dialog_View *view, void *data)
|
e_config_dialog_new(E_Comp *c, const char *title, const char *name, const char *class, const char *icon, int icon_size, E_Config_Dialog_View *view, void *data)
|
||||||
{
|
{
|
||||||
E_Config_Dialog *cfd;
|
E_Config_Dialog *cfd;
|
||||||
|
|
||||||
cfd = E_OBJECT_ALLOC(E_Config_Dialog, E_CONFIG_DIALOG_TYPE,
|
cfd = E_OBJECT_ALLOC(E_Config_Dialog, E_CONFIG_DIALOG_TYPE,
|
||||||
_e_config_dialog_free);
|
_e_config_dialog_free);
|
||||||
cfd->view = view;
|
cfd->view = view;
|
||||||
cfd->con = con;
|
cfd->comp = c;
|
||||||
cfd->title = eina_stringshare_add(title);
|
cfd->title = eina_stringshare_add(title);
|
||||||
cfd->name = eina_stringshare_add(name);
|
cfd->name = eina_stringshare_add(name);
|
||||||
cfd->class = eina_stringshare_add(class);
|
cfd->class = eina_stringshare_add(class);
|
||||||
|
@ -106,22 +106,21 @@ e_config_dialog_find(const char *name, const char *class)
|
||||||
E_Zone *z;
|
E_Zone *z;
|
||||||
|
|
||||||
z = e_util_zone_current_get(e_manager_current_get());
|
z = e_util_zone_current_get(e_manager_current_get());
|
||||||
e_border_uniconify(cfd->dia->win->border);
|
e_client_uniconify(cfd->dia->win->client);
|
||||||
e_win_raise(cfd->dia->win);
|
e_win_raise(cfd->dia->win);
|
||||||
if (z->container == cfd->dia->win->border->zone->container)
|
if (z->comp == cfd->dia->win->client->zone->comp)
|
||||||
e_border_desk_set(cfd->dia->win->border, e_desk_current_get(z));
|
e_client_desk_set(cfd->dia->win->client, e_desk_current_get(z));
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (!cfd->dia->win->border->sticky)
|
if (!cfd->dia->win->client->sticky)
|
||||||
e_desk_show(cfd->dia->win->border->desk);
|
e_desk_show(cfd->dia->win->client->desk);
|
||||||
ecore_x_pointer_warp(cfd->dia->win->border->zone->container->win,
|
e_util_pointer_center(cfd->dia->win->client);
|
||||||
cfd->dia->win->border->zone->x + (cfd->dia->win->border->zone->w / 2),
|
|
||||||
cfd->dia->win->border->zone->y + (cfd->dia->win->border->zone->h / 2));
|
|
||||||
}
|
}
|
||||||
e_border_unshade(cfd->dia->win->border, cfd->dia->win->border->shade.dir);
|
if (cfd->dia->win->client->shaded || cfd->dia->win->client->shading)
|
||||||
|
e_client_unshade(cfd->dia->win->client, cfd->dia->win->client->shade_dir);
|
||||||
if ((e_config->focus_setting == E_FOCUS_NEW_DIALOG) ||
|
if ((e_config->focus_setting == E_FOCUS_NEW_DIALOG) ||
|
||||||
(e_config->focus_setting == E_FOCUS_NEW_WINDOW))
|
(e_config->focus_setting == E_FOCUS_NEW_WINDOW))
|
||||||
e_border_focus_set(cfd->dia->win->border, 1, 1);
|
evas_object_focus_set(cfd->dia->win->client->frame, 1);
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -192,9 +191,9 @@ _e_config_dialog_go(E_Config_Dialog *cfd, E_Config_Dialog_CFData_Type type)
|
||||||
if (!pdia) /* creating window for the first time */
|
if (!pdia) /* creating window for the first time */
|
||||||
{
|
{
|
||||||
if ((cfd->view->normal_win) || (e_config->cfgdlg_normal_wins))
|
if ((cfd->view->normal_win) || (e_config->cfgdlg_normal_wins))
|
||||||
cfd->dia = e_dialog_normal_win_new(cfd->con, cfd->name, buf);
|
cfd->dia = e_dialog_normal_win_new(cfd->comp, cfd->name, buf);
|
||||||
else
|
else
|
||||||
cfd->dia = e_dialog_new(cfd->con, cfd->name, buf);
|
cfd->dia = e_dialog_new(cfd->comp, cfd->name, buf);
|
||||||
e_object_del_attach_func_set(E_OBJECT(cfd->dia),
|
e_object_del_attach_func_set(E_OBJECT(cfd->dia),
|
||||||
_e_config_dialog_cb_dialog_del);
|
_e_config_dialog_cb_dialog_del);
|
||||||
} /* window was created before - deleting content only */
|
} /* window was created before - deleting content only */
|
||||||
|
|
|
@ -41,7 +41,7 @@ struct _E_Config_Dialog
|
||||||
E_Config_Dialog_CFData_Type view_type;
|
E_Config_Dialog_CFData_Type view_type;
|
||||||
E_Config_Dialog_View *view;
|
E_Config_Dialog_View *view;
|
||||||
E_Config_Dialog_Data *cfdata;
|
E_Config_Dialog_Data *cfdata;
|
||||||
E_Container *con;
|
E_Comp *comp;
|
||||||
const char *title;
|
const char *title;
|
||||||
const char *icon;
|
const char *icon;
|
||||||
const char *name;
|
const char *name;
|
||||||
|
@ -55,7 +55,7 @@ struct _E_Config_Dialog
|
||||||
unsigned char cfg_changed_auto : 1;
|
unsigned char cfg_changed_auto : 1;
|
||||||
};
|
};
|
||||||
|
|
||||||
EAPI E_Config_Dialog *e_config_dialog_new(E_Container *con, const char *title, const char *name, const char *class, const char *icon, int icon_size, E_Config_Dialog_View *view, void *data);
|
EAPI E_Config_Dialog *e_config_dialog_new(E_Comp *c, const char *title, const char *name, const char *class, const char *icon, int icon_size, E_Config_Dialog_View *view, void *data);
|
||||||
EAPI int e_config_dialog_find(const char *name, const char *class);
|
EAPI int e_config_dialog_find(const char *name, const char *class);
|
||||||
EAPI E_Config_Dialog *e_config_dialog_get(const char *name, const char *class);
|
EAPI E_Config_Dialog *e_config_dialog_get(const char *name, const char *class);
|
||||||
|
|
||||||
|
|
|
@ -5,7 +5,7 @@ static void _e_configure_menu_add(void *data, E_Menu *m);
|
||||||
static void _e_configure_efreet_desktop_cleanup(void);
|
static void _e_configure_efreet_desktop_cleanup(void);
|
||||||
static void _e_configure_efreet_desktop_update(void);
|
static void _e_configure_efreet_desktop_update(void);
|
||||||
static Eina_Bool _e_configure_cb_efreet_desktop_cache_update(void *data, int type, void *event);
|
static Eina_Bool _e_configure_cb_efreet_desktop_cache_update(void *data, int type, void *event);
|
||||||
static void _e_configure_registry_item_full_add(const char *path, int pri, const char *label, const char *icon_file, const char *icon, E_Config_Dialog *(*func)(E_Container * con, const char *params), void (*generic_func)(E_Container *con, const char *params), Efreet_Desktop *desktop, const char *params);
|
static void _e_configure_registry_item_full_add(const char *path, int pri, const char *label, const char *icon_file, const char *icon, E_Config_Dialog *(*func)(E_Comp *c, const char *params), void (*generic_func)(E_Comp *c, const char *params), Efreet_Desktop *desktop, const char *params);
|
||||||
static void _e_configure_registry_item_free(E_Configure_It *eci);
|
static void _e_configure_registry_item_free(E_Configure_It *eci);
|
||||||
|
|
||||||
static void _configure_job(void *data);
|
static void _configure_job(void *data);
|
||||||
|
@ -19,7 +19,7 @@ static Ecore_Job *update_job = NULL;
|
||||||
|
|
||||||
static struct
|
static struct
|
||||||
{
|
{
|
||||||
void (*func)(const void *data, E_Container *con, const char *params, Efreet_Desktop *desktop);
|
void (*func)(const void *data, E_Comp *c, const char *params, Efreet_Desktop *desktop);
|
||||||
const char *data;
|
const char *data;
|
||||||
} custom_desktop_exec = { NULL, NULL };
|
} custom_desktop_exec = { NULL, NULL };
|
||||||
|
|
||||||
|
@ -41,7 +41,7 @@ e_configure_init(void)
|
||||||
}
|
}
|
||||||
|
|
||||||
EAPI void
|
EAPI void
|
||||||
e_configure_registry_call(const char *path, E_Container *con, const char *params)
|
e_configure_registry_call(const char *path, E_Comp *c, const char *params)
|
||||||
{
|
{
|
||||||
E_Configure_Cat *ecat;
|
E_Configure_Cat *ecat;
|
||||||
Eina_List *l;
|
Eina_List *l;
|
||||||
|
@ -52,7 +52,7 @@ e_configure_registry_call(const char *path, E_Container *con, const char *params
|
||||||
cat = ecore_file_dir_get(path);
|
cat = ecore_file_dir_get(path);
|
||||||
if (!cat) return;
|
if (!cat) return;
|
||||||
item = ecore_file_file_get(path);
|
item = ecore_file_file_get(path);
|
||||||
if (!con) con = e_container_current_get(e_manager_current_get());
|
if (!c) c = e_comp_get(NULL);
|
||||||
EINA_LIST_FOREACH(e_configure_registry, l, ecat)
|
EINA_LIST_FOREACH(e_configure_registry, l, ecat)
|
||||||
if (!strcmp(cat, ecat->cat))
|
if (!strcmp(cat, ecat->cat))
|
||||||
{
|
{
|
||||||
|
@ -64,16 +64,16 @@ e_configure_registry_call(const char *path, E_Container *con, const char *params
|
||||||
{
|
{
|
||||||
if (!params) params = eci->params;
|
if (!params) params = eci->params;
|
||||||
|
|
||||||
if (eci->func) eci->func(con, params);
|
if (eci->func) eci->func(c, params);
|
||||||
else if (eci->generic_func)
|
else if (eci->generic_func)
|
||||||
eci->generic_func(con, params);
|
eci->generic_func(c, params);
|
||||||
else if (eci->desktop)
|
else if (eci->desktop)
|
||||||
{
|
{
|
||||||
if (custom_desktop_exec.func)
|
if (custom_desktop_exec.func)
|
||||||
custom_desktop_exec.func(custom_desktop_exec.data,
|
custom_desktop_exec.func(custom_desktop_exec.data,
|
||||||
con, params, eci->desktop);
|
c, params, eci->desktop);
|
||||||
else
|
else
|
||||||
e_exec(e_util_zone_current_get(con->manager),
|
e_exec(e_util_zone_current_get(c->man),
|
||||||
eci->desktop, NULL, NULL, "config");
|
eci->desktop, NULL, NULL, "config");
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
@ -84,27 +84,27 @@ e_configure_registry_call(const char *path, E_Container *con, const char *params
|
||||||
}
|
}
|
||||||
|
|
||||||
EAPI void
|
EAPI void
|
||||||
e_configure_registry_item_add(const char *path, int pri, const char *label, const char *icon_file, const char *icon, E_Config_Dialog *(*func)(E_Container * con, const char *params))
|
e_configure_registry_item_add(const char *path, int pri, const char *label, const char *icon_file, const char *icon, E_Config_Dialog *(*func)(E_Comp *c, const char *params))
|
||||||
{
|
{
|
||||||
_e_configure_registry_item_full_add(path, pri, label, icon_file, icon, func, NULL, NULL, NULL);
|
_e_configure_registry_item_full_add(path, pri, label, icon_file, icon, func, NULL, NULL, NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
EAPI void
|
EAPI void
|
||||||
e_configure_registry_generic_item_add(const char *path, int pri, const char *label, const char *icon_file, const char *icon, void (*generic_func)(E_Container *con, const char *params))
|
e_configure_registry_generic_item_add(const char *path, int pri, const char *label, const char *icon_file, const char *icon, void (*generic_func)(E_Comp *c, const char *params))
|
||||||
{
|
{
|
||||||
_e_configure_registry_item_full_add(path, pri, label, icon_file, icon, NULL, generic_func, NULL, NULL);
|
_e_configure_registry_item_full_add(path, pri, label, icon_file, icon, NULL, generic_func, NULL, NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
EAPI void
|
EAPI void
|
||||||
e_configure_registry_item_params_add(const char *path, int pri, const char *label, const char *icon_file, const char *icon, E_Config_Dialog *(*func)(E_Container * con, const char *params), const char *params)
|
e_configure_registry_item_params_add(const char *path, int pri, const char *label, const char *icon_file, const char *icon, E_Config_Dialog *(*func)(E_Comp *c, const char *params), const char *params)
|
||||||
{
|
{
|
||||||
_e_configure_registry_item_full_add(path, pri, label, icon_file, icon, func, NULL, NULL, params);
|
_e_configure_registry_item_full_add(path, pri, label, icon_file, icon, func, NULL, NULL, params);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Delete an item in the configuration panel.
|
*Delete an item in the configuration panel.
|
||||||
*
|
*
|
||||||
* @param path location the item to delete
|
*@param path location the item to delete
|
||||||
*/
|
*/
|
||||||
EAPI void
|
EAPI void
|
||||||
e_configure_registry_item_del(const char *path)
|
e_configure_registry_item_del(const char *path)
|
||||||
|
@ -139,14 +139,14 @@ e_configure_registry_item_del(const char *path)
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Add a category to the configuration panel.
|
*Add a category to the configuration panel.
|
||||||
*
|
*
|
||||||
* @param path location the new category
|
*@param path location the new category
|
||||||
* @param pri the priority for sorting the category in the category list
|
*@param pri the priority for sorting the category in the category list
|
||||||
* @param label the name the user will see in configuration panel
|
*@param label the name the user will see in configuration panel
|
||||||
* @param icon_file the edje file that holds the icon for the category.
|
*@param icon_file the edje file that holds the icon for the category.
|
||||||
* Can be null to use current theme.
|
*Can be null to use current theme.
|
||||||
* @param icon the name of the edje group to use as icon
|
*@param icon the name of the edje group to use as icon
|
||||||
*/
|
*/
|
||||||
static int
|
static int
|
||||||
_E_configure_category_pri_cb(E_Configure_Cat *ecat, E_Configure_Cat *ecat2)
|
_E_configure_category_pri_cb(E_Configure_Cat *ecat, E_Configure_Cat *ecat2)
|
||||||
|
@ -181,9 +181,9 @@ e_configure_registry_category_add(const char *path, int pri, const char *label,
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Delete a category in the configuration panel.
|
*Delete a category in the configuration panel.
|
||||||
*
|
*
|
||||||
* @param path location the category to delete
|
*@param path location the category to delete
|
||||||
*/
|
*/
|
||||||
EAPI void
|
EAPI void
|
||||||
e_configure_registry_category_del(const char *path)
|
e_configure_registry_category_del(const char *path)
|
||||||
|
@ -210,19 +210,19 @@ e_configure_registry_category_del(const char *path)
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Add a item to the configuration panel.
|
*Add a item to the configuration panel.
|
||||||
*
|
*
|
||||||
* @param path location the location to place configuration item
|
*@param path location the location to place configuration item
|
||||||
* @param pri the priority for sorting the item in the category list
|
*@param pri the priority for sorting the item in the category list
|
||||||
* @param label the name the user will see in configuration panel
|
*@param label the name the user will see in configuration panel
|
||||||
* @param icon_file the edje file that holds the icon for the category.
|
*@param icon_file the edje file that holds the icon for the category.
|
||||||
* Can be null to use current theme.
|
*Can be null to use current theme.
|
||||||
* @param icon the name of the edje group to use as icon
|
*@param icon the name of the edje group to use as icon
|
||||||
* @param func the callback to use when the configuration item is clicked
|
*@param func the callback to use when the configuration item is clicked
|
||||||
*/
|
*/
|
||||||
|
|
||||||
EAPI void
|
EAPI void
|
||||||
e_configure_registry_custom_desktop_exec_callback_set(void (*func)(const void *data, E_Container *con, const char *params, Efreet_Desktop *desktop), const void *data)
|
e_configure_registry_custom_desktop_exec_callback_set(void (*func)(const void *data, E_Comp *c, const char *params, Efreet_Desktop *desktop), const void *data)
|
||||||
{
|
{
|
||||||
custom_desktop_exec.func = func;
|
custom_desktop_exec.func = func;
|
||||||
custom_desktop_exec.data = data;
|
custom_desktop_exec.data = data;
|
||||||
|
@ -268,7 +268,7 @@ e_configure_registry_exists(const char *path)
|
||||||
static void
|
static void
|
||||||
_e_configure_menu_module_item_cb(void *data __UNUSED__, E_Menu *m, E_Menu_Item *mi __UNUSED__)
|
_e_configure_menu_module_item_cb(void *data __UNUSED__, E_Menu *m, E_Menu_Item *mi __UNUSED__)
|
||||||
{
|
{
|
||||||
e_int_config_modules(m->zone->container, NULL);
|
e_int_config_modules(m->zone->comp, NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
@ -461,7 +461,7 @@ _e_configure_compare_pri_cb(E_Configure_It *eci, E_Configure_It *eci2)
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
_e_configure_registry_item_full_add(const char *path, int pri, const char *label, const char *icon_file, const char *icon, E_Config_Dialog *(*func)(E_Container * con, const char *params), void (*generic_func)(E_Container *con, const char *params), Efreet_Desktop *desktop, const char *params)
|
_e_configure_registry_item_full_add(const char *path, int pri, const char *label, const char *icon_file, const char *icon, E_Config_Dialog *(*func)(E_Comp *c, const char *params), void (*generic_func)(E_Comp *c, const char *params), Efreet_Desktop *desktop, const char *params)
|
||||||
{
|
{
|
||||||
Eina_List *l;
|
Eina_List *l;
|
||||||
char *cat;
|
char *cat;
|
||||||
|
|
|
@ -25,20 +25,20 @@ struct _E_Configure_It
|
||||||
const char *icon_file;
|
const char *icon_file;
|
||||||
const char *icon;
|
const char *icon;
|
||||||
const char *params;
|
const char *params;
|
||||||
E_Config_Dialog *(*func) (E_Container *con, const char *params);
|
E_Config_Dialog *(*func) (E_Comp *c, const char *params);
|
||||||
void (*generic_func) (E_Container *con, const char *params);
|
void (*generic_func) (E_Comp *c, const char *params);
|
||||||
Efreet_Desktop *desktop;
|
Efreet_Desktop *desktop;
|
||||||
};
|
};
|
||||||
|
|
||||||
EAPI void e_configure_registry_item_add(const char *path, int pri, const char *label, const char *icon_file, const char *icon, E_Config_Dialog *(*func) (E_Container *con, const char *params));
|
EAPI void e_configure_registry_item_add(const char *path, int pri, const char *label, const char *icon_file, const char *icon, E_Config_Dialog *(*func) (E_Comp *c, const char *params));
|
||||||
EAPI void e_configure_registry_item_params_add(const char *path, int pri, const char *label, const char *icon_file, const char *icon, E_Config_Dialog *(*func) (E_Container *con, const char *params), const char *params);
|
EAPI void e_configure_registry_item_params_add(const char *path, int pri, const char *label, const char *icon_file, const char *icon, E_Config_Dialog *(*func) (E_Comp *c, const char *params), const char *params);
|
||||||
EAPI void e_configure_registry_generic_item_add(const char *path, int pri, const char *label, const char *icon_file, const char *icon, void (*generic_func) (E_Container *con, const char *params));
|
EAPI void e_configure_registry_generic_item_add(const char *path, int pri, const char *label, const char *icon_file, const char *icon, void (*generic_func) (E_Comp *c, const char *params));
|
||||||
EAPI void e_configure_registry_item_del(const char *path);
|
EAPI void e_configure_registry_item_del(const char *path);
|
||||||
EAPI void e_configure_registry_category_add(const char *path, int pri, const char *label, const char *icon_file, const char *icon);
|
EAPI void e_configure_registry_category_add(const char *path, int pri, const char *label, const char *icon_file, const char *icon);
|
||||||
EAPI void e_configure_registry_category_del(const char *path);
|
EAPI void e_configure_registry_category_del(const char *path);
|
||||||
EAPI void e_configure_registry_call(const char *path, E_Container *con, const char *params);
|
EAPI void e_configure_registry_call(const char *path, E_Comp *c, const char *params);
|
||||||
EAPI int e_configure_registry_exists(const char *path);
|
EAPI int e_configure_registry_exists(const char *path);
|
||||||
EAPI void e_configure_registry_custom_desktop_exec_callback_set(void (*func) (const void *data, E_Container *con, const char *params, Efreet_Desktop *desktop), const void *data);
|
EAPI void e_configure_registry_custom_desktop_exec_callback_set(void (*func) (const void *data, E_Comp *c, const char *params, Efreet_Desktop *desktop), const void *data);
|
||||||
EINTERN void e_configure_init(void);
|
EINTERN void e_configure_init(void);
|
||||||
|
|
||||||
extern EAPI Eina_List *e_configure_registry;
|
extern EAPI Eina_List *e_configure_registry;
|
||||||
|
|
|
@ -33,7 +33,7 @@ e_confirm_dialog_show(const char *title, const char *icon, const char *text,
|
||||||
cd->del.func = del_func;
|
cd->del.func = del_func;
|
||||||
cd->del.data = del_data;
|
cd->del.data = del_data;
|
||||||
|
|
||||||
dia = e_dialog_new(e_container_current_get(e_manager_current_get()), "E", "_confirm_dialog");
|
dia = e_dialog_new(NULL, "E", "_confirm_dialog");
|
||||||
if (!dia)
|
if (!dia)
|
||||||
{
|
{
|
||||||
e_object_del(E_OBJECT(cd));
|
e_object_del(E_OBJECT(cd));
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -1,157 +0,0 @@
|
||||||
#ifdef E_TYPEDEFS
|
|
||||||
|
|
||||||
typedef enum _E_Container_Shape_Change
|
|
||||||
{
|
|
||||||
E_CONTAINER_SHAPE_ADD,
|
|
||||||
E_CONTAINER_SHAPE_DEL,
|
|
||||||
E_CONTAINER_SHAPE_SHOW,
|
|
||||||
E_CONTAINER_SHAPE_HIDE,
|
|
||||||
E_CONTAINER_SHAPE_MOVE,
|
|
||||||
E_CONTAINER_SHAPE_RESIZE,
|
|
||||||
E_CONTAINER_SHAPE_RECTS,
|
|
||||||
E_CONTAINER_SHAPE_INPUT_RECTS
|
|
||||||
} E_Container_Shape_Change;
|
|
||||||
|
|
||||||
typedef struct _E_Container E_Container;
|
|
||||||
typedef struct _E_Border_List E_Border_List;
|
|
||||||
typedef struct _E_Container_Shape E_Container_Shape;
|
|
||||||
typedef struct _E_Container_Shape_Callback E_Container_Shape_Callback;
|
|
||||||
typedef struct _E_Event_Container_Resize E_Event_Container_Resize;
|
|
||||||
|
|
||||||
typedef void (*E_Container_Shape_Cb)(void *data, E_Container_Shape *es, E_Container_Shape_Change ch);
|
|
||||||
|
|
||||||
#else
|
|
||||||
#ifndef E_CONTAINER_H
|
|
||||||
#define E_CONTAINER_H
|
|
||||||
|
|
||||||
#define E_CONTAINER_TYPE (int) 0xE0b01003
|
|
||||||
#define E_CONTAINER_SHAPE_TYPE (int) 0xE0b01004
|
|
||||||
|
|
||||||
#define E_CONTAINER_LAYER_COUNT 12
|
|
||||||
|
|
||||||
struct _E_Container
|
|
||||||
{
|
|
||||||
E_Object e_obj_inherit;
|
|
||||||
|
|
||||||
Ecore_X_Window win;
|
|
||||||
int x, y, w, h;
|
|
||||||
char visible : 1;
|
|
||||||
E_Manager *manager;
|
|
||||||
|
|
||||||
unsigned int num;
|
|
||||||
const char *name;
|
|
||||||
|
|
||||||
Ecore_Evas *bg_ecore_evas;
|
|
||||||
Evas *bg_evas;
|
|
||||||
Evas_Object *bg_blank_object;
|
|
||||||
Ecore_X_Window bg_win;
|
|
||||||
Ecore_X_Window event_win;
|
|
||||||
|
|
||||||
Eina_List *shapes;
|
|
||||||
Eina_List *shape_change_cb;
|
|
||||||
Eina_List *zones;
|
|
||||||
|
|
||||||
unsigned int clients;
|
|
||||||
struct {
|
|
||||||
Ecore_X_Window win;
|
|
||||||
Eina_List *clients; /* E_Border */
|
|
||||||
} layers[E_CONTAINER_LAYER_COUNT];
|
|
||||||
|
|
||||||
Ecore_X_Window scratch_win;
|
|
||||||
};
|
|
||||||
|
|
||||||
struct _E_Border_List
|
|
||||||
{
|
|
||||||
E_Container *container;
|
|
||||||
Eina_Array client_array;
|
|
||||||
int pos;
|
|
||||||
};
|
|
||||||
|
|
||||||
struct _E_Container_Shape
|
|
||||||
{
|
|
||||||
E_Object e_obj_inherit;
|
|
||||||
|
|
||||||
E_Container *con;
|
|
||||||
E_Comp_Win *comp_win;
|
|
||||||
int x, y, w, h;
|
|
||||||
unsigned char visible : 1;
|
|
||||||
struct {
|
|
||||||
int x, y, w, h;
|
|
||||||
} solid_rect;
|
|
||||||
int shape_rects_num;
|
|
||||||
Eina_Rectangle *shape_rects;
|
|
||||||
int shape_input_rects_num;
|
|
||||||
Eina_Rectangle *shape_input_rects;
|
|
||||||
};
|
|
||||||
|
|
||||||
struct _E_Container_Shape_Callback
|
|
||||||
{
|
|
||||||
E_Container_Shape_Cb func;
|
|
||||||
void *data;
|
|
||||||
};
|
|
||||||
|
|
||||||
struct _E_Event_Container_Resize
|
|
||||||
{
|
|
||||||
E_Container *container;
|
|
||||||
};
|
|
||||||
|
|
||||||
EINTERN int e_container_init(void);
|
|
||||||
EINTERN int e_container_shutdown(void);
|
|
||||||
|
|
||||||
EAPI E_Container *e_container_new(E_Manager *man);
|
|
||||||
EAPI void e_container_show(E_Container *con);
|
|
||||||
EAPI void e_container_hide(E_Container *con);
|
|
||||||
EAPI E_Container *e_container_current_get(E_Manager *man);
|
|
||||||
EAPI E_Container *e_container_number_get(E_Manager *man, int num);
|
|
||||||
EAPI void e_container_move(E_Container *con, int x, int y);
|
|
||||||
EAPI void e_container_resize(E_Container *con, int w, int h);
|
|
||||||
EAPI void e_container_move_resize(E_Container *con, int x, int y, int w, int h);
|
|
||||||
EAPI void e_container_raise(E_Container *con);
|
|
||||||
EAPI void e_container_lower(E_Container *con);
|
|
||||||
|
|
||||||
EAPI E_Border_List *e_container_border_list_first(E_Container *con);
|
|
||||||
EAPI E_Border_List *e_container_border_list_last(E_Container *con);
|
|
||||||
EAPI E_Border *e_container_border_list_next(E_Border_List *list);
|
|
||||||
EAPI E_Border *e_container_border_list_prev(E_Border_List *list);
|
|
||||||
EAPI void e_container_border_list_free(E_Border_List *list);
|
|
||||||
|
|
||||||
EAPI E_Zone *e_container_zone_at_point_get(E_Container *con, int x, int y);
|
|
||||||
EAPI E_Zone *e_container_zone_number_get(E_Container *con, int num);
|
|
||||||
EAPI E_Zone *e_container_zone_id_get(E_Container *con, int id);
|
|
||||||
|
|
||||||
EAPI E_Desk *e_container_desk_window_profile_get(E_Container *con, const char *profile);
|
|
||||||
|
|
||||||
EAPI E_Container_Shape *e_container_shape_add(E_Container *con);
|
|
||||||
EAPI void e_container_shape_show(E_Container_Shape *es);
|
|
||||||
EAPI void e_container_shape_hide(E_Container_Shape *es);
|
|
||||||
EAPI void e_container_shape_move(E_Container_Shape *es, int x, int y);
|
|
||||||
EAPI void e_container_shape_resize(E_Container_Shape *es, int w, int h);
|
|
||||||
EAPI Eina_List *e_container_shape_list_get(E_Container *con);
|
|
||||||
EAPI void e_container_shape_geometry_get(E_Container_Shape *es, int *x, int *y, int *w, int *h);
|
|
||||||
EAPI E_Container *e_container_shape_container_get(E_Container_Shape *es);
|
|
||||||
EAPI void e_container_shape_change_callback_add(E_Container *con, E_Container_Shape_Cb func, void *data);
|
|
||||||
EAPI void e_container_shape_change_callback_del(E_Container *con, E_Container_Shape_Cb func, void *data);
|
|
||||||
EAPI void e_container_shape_rects_set(E_Container_Shape *es, Eina_Rectangle *rects, int num);
|
|
||||||
EAPI void e_container_shape_input_rects_set(E_Container_Shape *es, Eina_Rectangle *rects, int num);
|
|
||||||
EAPI void e_container_shape_solid_rect_set(E_Container_Shape *es, int x, int y, int w, int h);
|
|
||||||
EAPI void e_container_shape_solid_rect_get(E_Container_Shape *es, int *x, int *y, int *w, int *h);
|
|
||||||
|
|
||||||
EAPI int e_container_borders_count(E_Container *con);
|
|
||||||
EAPI void e_container_border_add(E_Border *bd);
|
|
||||||
EAPI void e_container_border_remove(E_Border *bd);
|
|
||||||
EAPI void e_container_window_raise(E_Container *con, Ecore_X_Window win, E_Layer layer);
|
|
||||||
EAPI void e_container_window_lower(E_Container *con, Ecore_X_Window win, E_Layer layer);
|
|
||||||
EAPI E_Border *e_container_border_raise(E_Border *bd);
|
|
||||||
EAPI E_Border *e_container_border_lower(E_Border *bd);
|
|
||||||
EAPI void e_container_border_stack_above(E_Border *bd, E_Border *above);
|
|
||||||
EAPI void e_container_border_stack_below(E_Border *bd, E_Border *below);
|
|
||||||
|
|
||||||
EAPI void e_container_all_freeze(void);
|
|
||||||
EAPI void e_container_all_thaw(void);
|
|
||||||
|
|
||||||
EAPI E_Container *e_container_evas_object_container_get(Evas_Object *obj);
|
|
||||||
|
|
||||||
extern EAPI int E_EVENT_CONTAINER_RESIZE;
|
|
||||||
|
|
||||||
#endif
|
|
||||||
#endif
|
|
445
src/bin/e_desk.c
445
src/bin/e_desk.c
|
@ -13,10 +13,11 @@ static void _e_desk_event_desk_deskshow_free(void *data, void *ev);
|
||||||
static void _e_desk_event_desk_name_change_free(void *data, void *ev);
|
static void _e_desk_event_desk_name_change_free(void *data, void *ev);
|
||||||
static void _e_desk_show_begin(E_Desk *desk, int dx, int dy);
|
static void _e_desk_show_begin(E_Desk *desk, int dx, int dy);
|
||||||
static void _e_desk_hide_begin(E_Desk *desk, int dx, int dy);
|
static void _e_desk_hide_begin(E_Desk *desk, int dx, int dy);
|
||||||
#if (ECORE_VERSION_MAJOR > 1) || (ECORE_VERSION_MINOR >= 8)
|
|
||||||
static void _e_desk_event_desk_window_profile_change_free(void *data, void *ev);
|
static void _e_desk_event_desk_window_profile_change_free(void *data, void *ev);
|
||||||
static void _e_desk_window_profile_change_protocol_set(void);
|
static void _e_desk_window_profile_change_protocol_set(void);
|
||||||
#endif
|
|
||||||
|
static E_Desk_Flip_Cb _e_desk_flip_cb = NULL;
|
||||||
|
static void *_e_desk_flip_data = NULL;
|
||||||
|
|
||||||
EAPI int E_EVENT_DESK_SHOW = 0;
|
EAPI int E_EVENT_DESK_SHOW = 0;
|
||||||
EAPI int E_EVENT_DESK_BEFORE_SHOW = 0;
|
EAPI int E_EVENT_DESK_BEFORE_SHOW = 0;
|
||||||
|
@ -49,9 +50,7 @@ e_desk_new(E_Zone *zone, int x, int y)
|
||||||
E_Desk *desk;
|
E_Desk *desk;
|
||||||
Eina_List *l;
|
Eina_List *l;
|
||||||
E_Config_Desktop_Name *cfname;
|
E_Config_Desktop_Name *cfname;
|
||||||
#if (ECORE_VERSION_MAJOR > 1) || (ECORE_VERSION_MINOR >= 8)
|
|
||||||
E_Config_Desktop_Window_Profile *cfprof;
|
E_Config_Desktop_Window_Profile *cfprof;
|
||||||
#endif
|
|
||||||
char name[40];
|
char name[40];
|
||||||
int ok = 0;
|
int ok = 0;
|
||||||
|
|
||||||
|
@ -68,8 +67,8 @@ e_desk_new(E_Zone *zone, int x, int y)
|
||||||
/* Get current desktop's name */
|
/* Get current desktop's name */
|
||||||
EINA_LIST_FOREACH(e_config->desktop_names, l, cfname)
|
EINA_LIST_FOREACH(e_config->desktop_names, l, cfname)
|
||||||
{
|
{
|
||||||
if ((cfname->container >= 0) &&
|
if ((cfname->manager >= 0) &&
|
||||||
((int)zone->container->num != cfname->container)) continue;
|
((int)zone->comp->num != cfname->manager)) continue;
|
||||||
if ((cfname->zone >= 0) &&
|
if ((cfname->zone >= 0) &&
|
||||||
((int)zone->num != cfname->zone)) continue;
|
((int)zone->num != cfname->zone)) continue;
|
||||||
if ((cfname->desk_x != desk->x) || (cfname->desk_y != desk->y))
|
if ((cfname->desk_x != desk->x) || (cfname->desk_y != desk->y))
|
||||||
|
@ -84,13 +83,12 @@ e_desk_new(E_Zone *zone, int x, int y)
|
||||||
snprintf(name, sizeof(name), _(e_config->desktop_default_name), x, y);
|
snprintf(name, sizeof(name), _(e_config->desktop_default_name), x, y);
|
||||||
desk->name = eina_stringshare_add(name);
|
desk->name = eina_stringshare_add(name);
|
||||||
}
|
}
|
||||||
#if (ECORE_VERSION_MAJOR > 1) || (ECORE_VERSION_MINOR >= 8)
|
|
||||||
/* Get window profile name for current desktop */
|
/* Get window profile name for current desktop */
|
||||||
ok = 0;
|
ok = 0;
|
||||||
EINA_LIST_FOREACH(e_config->desktop_window_profiles, l, cfprof)
|
EINA_LIST_FOREACH(e_config->desktop_window_profiles, l, cfprof)
|
||||||
{
|
{
|
||||||
if ((cfprof->container >= 0) &&
|
if ((cfprof->manager >= 0) &&
|
||||||
((int)zone->container->num != cfprof->container)) continue;
|
((int)zone->comp->num != cfprof->manager)) continue;
|
||||||
if ((cfprof->zone >= 0) &&
|
if ((cfprof->zone >= 0) &&
|
||||||
((int)zone->num != cfprof->zone)) continue;
|
((int)zone->num != cfprof->zone)) continue;
|
||||||
if ((cfprof->desk_x != desk->x) || (cfprof->desk_y != desk->y))
|
if ((cfprof->desk_x != desk->x) || (cfprof->desk_y != desk->y))
|
||||||
|
@ -105,10 +103,22 @@ e_desk_new(E_Zone *zone, int x, int y)
|
||||||
desk->window_profile = eina_stringshare_add
|
desk->window_profile = eina_stringshare_add
|
||||||
(e_config->desktop_default_window_profile);
|
(e_config->desktop_default_window_profile);
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
return desk;
|
return desk;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
EAPI E_Client *
|
||||||
|
e_desk_client_top_visible_get(const E_Desk *desk)
|
||||||
|
{
|
||||||
|
E_Client *ec;
|
||||||
|
|
||||||
|
E_OBJECT_CHECK_RETURN(desk, NULL);
|
||||||
|
E_OBJECT_TYPE_CHECK_RETURN(desk, E_DESK_TYPE, NULL);
|
||||||
|
|
||||||
|
E_CLIENT_REVERSE_FOREACH(e_comp_get(desk), ec)
|
||||||
|
if (e_client_util_desk_visible(ec, desk) && evas_object_visible_get(ec->frame)) return ec;
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
EAPI void
|
EAPI void
|
||||||
e_desk_name_set(E_Desk *desk, const char *name)
|
e_desk_name_set(E_Desk *desk, const char *name)
|
||||||
{
|
{
|
||||||
|
@ -127,14 +137,14 @@ e_desk_name_set(E_Desk *desk, const char *name)
|
||||||
}
|
}
|
||||||
|
|
||||||
EAPI void
|
EAPI void
|
||||||
e_desk_name_add(int container, int zone, int desk_x, int desk_y, const char *name)
|
e_desk_name_add(int manager, int zone, int desk_x, int desk_y, const char *name)
|
||||||
{
|
{
|
||||||
E_Config_Desktop_Name *cfname;
|
E_Config_Desktop_Name *cfname;
|
||||||
|
|
||||||
e_desk_name_del(container, zone, desk_x, desk_y);
|
e_desk_name_del(manager, zone, desk_x, desk_y);
|
||||||
|
|
||||||
cfname = E_NEW(E_Config_Desktop_Name, 1);
|
cfname = E_NEW(E_Config_Desktop_Name, 1);
|
||||||
cfname->container = container;
|
cfname->manager = manager;
|
||||||
cfname->zone = zone;
|
cfname->zone = zone;
|
||||||
cfname->desk_x = desk_x;
|
cfname->desk_x = desk_x;
|
||||||
cfname->desk_y = desk_y;
|
cfname->desk_y = desk_y;
|
||||||
|
@ -144,14 +154,14 @@ e_desk_name_add(int container, int zone, int desk_x, int desk_y, const char *nam
|
||||||
}
|
}
|
||||||
|
|
||||||
EAPI void
|
EAPI void
|
||||||
e_desk_name_del(int container, int zone, int desk_x, int desk_y)
|
e_desk_name_del(int manager, int zone, int desk_x, int desk_y)
|
||||||
{
|
{
|
||||||
Eina_List *l = NULL;
|
Eina_List *l = NULL;
|
||||||
E_Config_Desktop_Name *cfname = NULL;
|
E_Config_Desktop_Name *cfname = NULL;
|
||||||
|
|
||||||
EINA_LIST_FOREACH(e_config->desktop_names, l, cfname)
|
EINA_LIST_FOREACH(e_config->desktop_names, l, cfname)
|
||||||
{
|
{
|
||||||
if ((cfname->container == container) && (cfname->zone == zone) &&
|
if ((cfname->manager == manager) && (cfname->zone == zone) &&
|
||||||
(cfname->desk_x == desk_x) && (cfname->desk_y == desk_y))
|
(cfname->desk_x == desk_x) && (cfname->desk_y == desk_y))
|
||||||
{
|
{
|
||||||
e_config->desktop_names =
|
e_config->desktop_names =
|
||||||
|
@ -166,48 +176,44 @@ e_desk_name_del(int container, int zone, int desk_x, int desk_y)
|
||||||
EAPI void
|
EAPI void
|
||||||
e_desk_name_update(void)
|
e_desk_name_update(void)
|
||||||
{
|
{
|
||||||
Eina_List *m, *c, *z, *l;
|
const Eina_List *z, *l;
|
||||||
E_Manager *man;
|
E_Comp *c;
|
||||||
E_Container *con;
|
|
||||||
E_Zone *zone;
|
E_Zone *zone;
|
||||||
E_Desk *desk;
|
E_Desk *desk;
|
||||||
E_Config_Desktop_Name *cfname;
|
E_Config_Desktop_Name *cfname;
|
||||||
int d_x, d_y, ok;
|
int d_x, d_y, ok;
|
||||||
char name[40];
|
char name[40];
|
||||||
|
|
||||||
EINA_LIST_FOREACH(e_manager_list(), m, man)
|
EINA_LIST_FOREACH(e_comp_list(), l, c)
|
||||||
{
|
{
|
||||||
EINA_LIST_FOREACH(man->containers, c, con)
|
EINA_LIST_FOREACH(c->zones, z, zone)
|
||||||
{
|
{
|
||||||
EINA_LIST_FOREACH(con->zones, z, zone)
|
for (d_x = 0; d_x < zone->desk_x_count; d_x++)
|
||||||
{
|
{
|
||||||
for (d_x = 0; d_x < zone->desk_x_count; d_x++)
|
for (d_y = 0; d_y < zone->desk_y_count; d_y++)
|
||||||
{
|
{
|
||||||
for (d_y = 0; d_y < zone->desk_y_count; d_y++)
|
desk = zone->desks[d_x + zone->desk_x_count * d_y];
|
||||||
|
ok = 0;
|
||||||
|
|
||||||
|
EINA_LIST_FOREACH(e_config->desktop_names, l, cfname)
|
||||||
{
|
{
|
||||||
desk = zone->desks[d_x + zone->desk_x_count * d_y];
|
if ((cfname->manager >= 0) &&
|
||||||
ok = 0;
|
((int)c->num != cfname->manager)) continue;
|
||||||
|
if ((cfname->zone >= 0) &&
|
||||||
|
((int)zone->num != cfname->zone)) continue;
|
||||||
|
if ((cfname->desk_x != d_x) ||
|
||||||
|
(cfname->desk_y != d_y)) continue;
|
||||||
|
e_desk_name_set(desk, cfname->name);
|
||||||
|
ok = 1;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
EINA_LIST_FOREACH(e_config->desktop_names, l, cfname)
|
if (!ok)
|
||||||
{
|
{
|
||||||
if ((cfname->container >= 0) &&
|
snprintf(name, sizeof(name),
|
||||||
((int)con->num != cfname->container)) continue;
|
_(e_config->desktop_default_name),
|
||||||
if ((cfname->zone >= 0) &&
|
d_x, d_y);
|
||||||
((int)zone->num != cfname->zone)) continue;
|
e_desk_name_set(desk, name);
|
||||||
if ((cfname->desk_x != d_x) ||
|
|
||||||
(cfname->desk_y != d_y)) continue;
|
|
||||||
e_desk_name_set(desk, cfname->name);
|
|
||||||
ok = 1;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!ok)
|
|
||||||
{
|
|
||||||
snprintf(name, sizeof(name),
|
|
||||||
_(e_config->desktop_default_name),
|
|
||||||
d_x, d_y);
|
|
||||||
e_desk_name_set(desk, name);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -236,7 +242,6 @@ e_desk_show(E_Desk *desk)
|
||||||
ecore_event_add(E_EVENT_DESK_BEFORE_SHOW, eev,
|
ecore_event_add(E_EVENT_DESK_BEFORE_SHOW, eev,
|
||||||
_e_desk_event_desk_before_show_free, NULL);
|
_e_desk_event_desk_before_show_free, NULL);
|
||||||
|
|
||||||
ecore_x_window_shadow_tree_flush();
|
|
||||||
for (x = 0; x < desk->zone->desk_x_count; x++)
|
for (x = 0; x < desk->zone->desk_x_count; x++)
|
||||||
{
|
{
|
||||||
for (y = 0; y < desk->zone->desk_y_count; y++)
|
for (y = 0; y < desk->zone->desk_y_count; y++)
|
||||||
|
@ -328,8 +333,7 @@ e_desk_show(E_Desk *desk)
|
||||||
EAPI void
|
EAPI void
|
||||||
e_desk_deskshow(E_Zone *zone)
|
e_desk_deskshow(E_Zone *zone)
|
||||||
{
|
{
|
||||||
E_Border *bd;
|
E_Client *ec;
|
||||||
E_Border_List *bl;
|
|
||||||
E_Desk *desk;
|
E_Desk *desk;
|
||||||
E_Event_Desk_Show *ev;
|
E_Event_Desk_Show *ev;
|
||||||
|
|
||||||
|
@ -337,32 +341,28 @@ e_desk_deskshow(E_Zone *zone)
|
||||||
E_OBJECT_TYPE_CHECK(zone, E_ZONE_TYPE);
|
E_OBJECT_TYPE_CHECK(zone, E_ZONE_TYPE);
|
||||||
|
|
||||||
desk = e_desk_current_get(zone);
|
desk = e_desk_current_get(zone);
|
||||||
bl = e_container_border_list_first(zone->container);
|
E_CLIENT_FOREACH(zone->comp, ec)
|
||||||
ecore_x_window_shadow_tree_flush();
|
|
||||||
while ((bd = e_container_border_list_next(bl)))
|
|
||||||
{
|
{
|
||||||
if (bd->desk == desk)
|
if (e_client_util_ignored_get(ec)) continue;
|
||||||
|
if (ec->desk != desk) continue;
|
||||||
|
if (desk->deskshow_toggle)
|
||||||
{
|
{
|
||||||
if (desk->deskshow_toggle)
|
if (ec->deskshow)
|
||||||
{
|
{
|
||||||
if (bd->deskshow)
|
ec->deskshow = 0;
|
||||||
{
|
e_client_uniconify(ec);
|
||||||
bd->deskshow = 0;
|
|
||||||
e_border_uniconify(bd);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
if (bd->iconic) continue;
|
|
||||||
if (bd->client.netwm.state.skip_taskbar) continue;
|
|
||||||
if (bd->user_skip_winlist) continue;
|
|
||||||
bd->deskshow = 1;
|
|
||||||
e_border_iconify(bd);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (ec->iconic) continue;
|
||||||
|
if (ec->netwm.state.skip_taskbar) continue;
|
||||||
|
if (ec->user_skip_winlist) continue;
|
||||||
|
ec->deskshow = 1;
|
||||||
|
e_client_iconify(ec);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
desk->deskshow_toggle = desk->deskshow_toggle ? 0 : 1;
|
desk->deskshow_toggle = !desk->deskshow_toggle;
|
||||||
e_container_border_list_free(bl);
|
|
||||||
ev = E_NEW(E_Event_Desk_Show, 1);
|
ev = E_NEW(E_Event_Desk_Show, 1);
|
||||||
ev->desk = desk;
|
ev->desk = desk;
|
||||||
e_object_ref(E_OBJECT(desk));
|
e_object_ref(E_OBJECT(desk));
|
||||||
|
@ -370,40 +370,40 @@ e_desk_deskshow(E_Zone *zone)
|
||||||
_e_desk_event_desk_deskshow_free, NULL);
|
_e_desk_event_desk_deskshow_free, NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
EAPI E_Border *
|
EAPI E_Client *
|
||||||
e_desk_last_focused_focus(E_Desk *desk)
|
e_desk_last_focused_focus(E_Desk *desk)
|
||||||
{
|
{
|
||||||
Eina_List *l = NULL;
|
Eina_List *l = NULL;
|
||||||
E_Border *bd, *bds = NULL;
|
E_Client *ec, *ecs = NULL;
|
||||||
|
|
||||||
EINA_LIST_FOREACH(e_border_focus_stack_get(), l, bd)
|
EINA_LIST_FOREACH(e_client_focus_stack_get(), l, ec)
|
||||||
{
|
{
|
||||||
if ((!bd->iconic) && (bd->visible) &&
|
if ((!ec->iconic) && (ec->visible) &&
|
||||||
((bd->desk == desk) || ((bd->zone == desk->zone) && bd->sticky)) &&
|
((ec->desk == desk) || ((ec->zone == desk->zone) && ec->sticky)) &&
|
||||||
(bd->client.icccm.accepts_focus || bd->client.icccm.take_focus) &&
|
(ec->icccm.accepts_focus || ec->icccm.take_focus) &&
|
||||||
(bd->client.netwm.type != ECORE_X_WINDOW_TYPE_DOCK) &&
|
(ec->netwm.type != E_WINDOW_TYPE_DOCK) &&
|
||||||
(bd->client.netwm.type != ECORE_X_WINDOW_TYPE_TOOLBAR) &&
|
(ec->netwm.type != E_WINDOW_TYPE_TOOLBAR) &&
|
||||||
(bd->client.netwm.type != ECORE_X_WINDOW_TYPE_MENU) &&
|
(ec->netwm.type != E_WINDOW_TYPE_MENU) &&
|
||||||
(bd->client.netwm.type != ECORE_X_WINDOW_TYPE_SPLASH) &&
|
(ec->netwm.type != E_WINDOW_TYPE_SPLASH) &&
|
||||||
(bd->client.netwm.type != ECORE_X_WINDOW_TYPE_DESKTOP))
|
(ec->netwm.type != E_WINDOW_TYPE_DESKTOP))
|
||||||
{
|
{
|
||||||
/* this was the window last focused in this desktop */
|
/* this was the window last focused in this desktop */
|
||||||
if (!bd->lock_focus_out)
|
if (!ec->lock_focus_out)
|
||||||
{
|
{
|
||||||
if (bd->sticky)
|
if (ec->sticky)
|
||||||
{
|
{
|
||||||
bds = bd;
|
ecs = ec;
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
e_border_focus_set_with_pointer(bd);
|
e_client_focus_set_with_pointer(ec);
|
||||||
return bd;
|
return ec;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (bds)
|
if (ecs)
|
||||||
{
|
{
|
||||||
e_border_focus_set_with_pointer(bds);
|
e_client_focus_set_with_pointer(ecs);
|
||||||
return bds;
|
return ecs;
|
||||||
}
|
}
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
@ -532,7 +532,6 @@ e_desk_prev(E_Zone *zone)
|
||||||
e_desk_show(e_desk_at_xy_get(zone, x, y));
|
e_desk_show(e_desk_at_xy_get(zone, x, y));
|
||||||
}
|
}
|
||||||
|
|
||||||
#if (ECORE_VERSION_MAJOR > 1) || (ECORE_VERSION_MINOR >= 8)
|
|
||||||
EAPI void
|
EAPI void
|
||||||
e_desk_window_profile_set(E_Desk *desk,
|
e_desk_window_profile_set(E_Desk *desk,
|
||||||
const char *profile)
|
const char *profile)
|
||||||
|
@ -552,7 +551,7 @@ e_desk_window_profile_set(E_Desk *desk,
|
||||||
}
|
}
|
||||||
|
|
||||||
EAPI void
|
EAPI void
|
||||||
e_desk_window_profile_add(int container,
|
e_desk_window_profile_add(int manager,
|
||||||
int zone,
|
int zone,
|
||||||
int desk_x,
|
int desk_x,
|
||||||
int desk_y,
|
int desk_y,
|
||||||
|
@ -560,20 +559,19 @@ e_desk_window_profile_add(int container,
|
||||||
{
|
{
|
||||||
E_Config_Desktop_Window_Profile *cfprof;
|
E_Config_Desktop_Window_Profile *cfprof;
|
||||||
|
|
||||||
e_desk_window_profile_del(container, zone, desk_x, desk_y);
|
e_desk_window_profile_del(manager, zone, desk_x, desk_y);
|
||||||
|
|
||||||
cfprof = E_NEW(E_Config_Desktop_Window_Profile, 1);
|
cfprof = E_NEW(E_Config_Desktop_Window_Profile, 1);
|
||||||
cfprof->container = container;
|
cfprof->manager = manager;
|
||||||
cfprof->zone = zone;
|
cfprof->zone = zone;
|
||||||
cfprof->desk_x = desk_x;
|
cfprof->desk_x = desk_x;
|
||||||
cfprof->desk_y = desk_y;
|
cfprof->desk_y = desk_y;
|
||||||
if (profile) cfprof->profile = eina_stringshare_add(profile);
|
cfprof->profile = eina_stringshare_add(profile);
|
||||||
else cfprof->profile = NULL;
|
|
||||||
e_config->desktop_window_profiles = eina_list_append(e_config->desktop_window_profiles, cfprof);
|
e_config->desktop_window_profiles = eina_list_append(e_config->desktop_window_profiles, cfprof);
|
||||||
}
|
}
|
||||||
|
|
||||||
EAPI void
|
EAPI void
|
||||||
e_desk_window_profile_del(int container,
|
e_desk_window_profile_del(int manager,
|
||||||
int zone,
|
int zone,
|
||||||
int desk_x,
|
int desk_x,
|
||||||
int desk_y)
|
int desk_y)
|
||||||
|
@ -583,7 +581,7 @@ e_desk_window_profile_del(int container,
|
||||||
|
|
||||||
EINA_LIST_FOREACH(e_config->desktop_window_profiles, l, cfprof)
|
EINA_LIST_FOREACH(e_config->desktop_window_profiles, l, cfprof)
|
||||||
{
|
{
|
||||||
if (!((cfprof->container == container) &&
|
if (!((cfprof->manager == manager) &&
|
||||||
(cfprof->zone == zone) &&
|
(cfprof->zone == zone) &&
|
||||||
(cfprof->desk_x == desk_x) &&
|
(cfprof->desk_x == desk_x) &&
|
||||||
(cfprof->desk_y == desk_y)))
|
(cfprof->desk_y == desk_y)))
|
||||||
|
@ -591,8 +589,8 @@ e_desk_window_profile_del(int container,
|
||||||
|
|
||||||
e_config->desktop_window_profiles =
|
e_config->desktop_window_profiles =
|
||||||
eina_list_remove_list(e_config->desktop_window_profiles, l);
|
eina_list_remove_list(e_config->desktop_window_profiles, l);
|
||||||
if (cfprof->profile) eina_stringshare_del(cfprof->profile);
|
eina_stringshare_del(cfprof->profile);
|
||||||
E_FREE(cfprof);
|
free(cfprof);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -600,9 +598,8 @@ e_desk_window_profile_del(int container,
|
||||||
EAPI void
|
EAPI void
|
||||||
e_desk_window_profile_update(void)
|
e_desk_window_profile_update(void)
|
||||||
{
|
{
|
||||||
Eina_List *m, *c, *z, *l;
|
const Eina_List *z, *l;
|
||||||
E_Manager *man;
|
E_Comp *c;
|
||||||
E_Container *con;
|
|
||||||
E_Zone *zone;
|
E_Zone *zone;
|
||||||
E_Desk *desk;
|
E_Desk *desk;
|
||||||
E_Config_Desktop_Window_Profile *cfprof;
|
E_Config_Desktop_Window_Profile *cfprof;
|
||||||
|
@ -613,37 +610,34 @@ e_desk_window_profile_update(void)
|
||||||
if (!(e_config->use_desktop_window_profile))
|
if (!(e_config->use_desktop_window_profile))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
EINA_LIST_FOREACH(e_manager_list(), m, man)
|
EINA_LIST_FOREACH(e_comp_list(), l, c)
|
||||||
{
|
{
|
||||||
EINA_LIST_FOREACH(man->containers, c, con)
|
EINA_LIST_FOREACH(c->zones, z, zone)
|
||||||
{
|
{
|
||||||
EINA_LIST_FOREACH(con->zones, z, zone)
|
for (d_x = 0; d_x < zone->desk_x_count; d_x++)
|
||||||
{
|
{
|
||||||
for (d_x = 0; d_x < zone->desk_x_count; d_x++)
|
for (d_y = 0; d_y < zone->desk_y_count; d_y++)
|
||||||
{
|
{
|
||||||
for (d_y = 0; d_y < zone->desk_y_count; d_y++)
|
desk = zone->desks[d_x + zone->desk_x_count * d_y];
|
||||||
|
ok = 0;
|
||||||
|
|
||||||
|
EINA_LIST_FOREACH(e_config->desktop_window_profiles, l, cfprof)
|
||||||
{
|
{
|
||||||
desk = zone->desks[d_x + zone->desk_x_count * d_y];
|
if ((cfprof->manager >= 0) &&
|
||||||
ok = 0;
|
((int)c->num != cfprof->manager)) continue;
|
||||||
|
if ((cfprof->zone >= 0) &&
|
||||||
|
((int)zone->num != cfprof->zone)) continue;
|
||||||
|
if ((cfprof->desk_x != d_x) ||
|
||||||
|
(cfprof->desk_y != d_y)) continue;
|
||||||
|
e_desk_window_profile_set(desk, cfprof->profile);
|
||||||
|
ok = 1;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
EINA_LIST_FOREACH(e_config->desktop_window_profiles, l, cfprof)
|
if (!ok)
|
||||||
{
|
{
|
||||||
if ((cfprof->container >= 0) &&
|
e_desk_window_profile_set
|
||||||
((int)con->num != cfprof->container)) continue;
|
(desk, e_config->desktop_default_window_profile);
|
||||||
if ((cfprof->zone >= 0) &&
|
|
||||||
((int)zone->num != cfprof->zone)) continue;
|
|
||||||
if ((cfprof->desk_x != d_x) ||
|
|
||||||
(cfprof->desk_y != d_y)) continue;
|
|
||||||
e_desk_window_profile_set(desk, cfprof->profile);
|
|
||||||
ok = 1;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!ok)
|
|
||||||
{
|
|
||||||
e_desk_window_profile_set
|
|
||||||
(desk, e_config->desktop_default_window_profile);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -651,7 +645,55 @@ e_desk_window_profile_update(void)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif
|
EAPI void
|
||||||
|
e_desk_flip_cb_set(E_Desk_Flip_Cb cb, const void *data)
|
||||||
|
{
|
||||||
|
_e_desk_flip_cb = cb;
|
||||||
|
_e_desk_flip_data = (void*)data;
|
||||||
|
}
|
||||||
|
|
||||||
|
EAPI void
|
||||||
|
e_desk_flip_end(E_Desk *desk)
|
||||||
|
{
|
||||||
|
E_Event_Desk_After_Show *ev;
|
||||||
|
E_Client *ec;
|
||||||
|
|
||||||
|
ev = E_NEW(E_Event_Desk_After_Show, 1);
|
||||||
|
ev->desk = desk;
|
||||||
|
e_object_ref(E_OBJECT(ev->desk));
|
||||||
|
ecore_event_add(E_EVENT_DESK_AFTER_SHOW, ev,
|
||||||
|
_e_desk_event_desk_after_show_free, NULL);
|
||||||
|
|
||||||
|
e_comp_shape_queue(e_comp_get(desk));
|
||||||
|
if (!e_config->focus_last_focused_per_desktop) return;
|
||||||
|
if ((e_config->focus_policy == E_FOCUS_MOUSE) ||
|
||||||
|
(e_config->focus_policy == E_FOCUS_SLOPPY))
|
||||||
|
{
|
||||||
|
ec = e_client_focused_get();
|
||||||
|
/* only set focus/warp pointer if currently focused window
|
||||||
|
* is on same screen (user hasn't switched screens during transition)
|
||||||
|
*/
|
||||||
|
if (ec && ec->desk && (ec->desk->zone != desk->zone))
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
ec = e_desk_last_focused_focus(desk);
|
||||||
|
if ((e_config->focus_policy != E_FOCUS_MOUSE) && (!ec))
|
||||||
|
{
|
||||||
|
/* we didn't previously have a focused window on this desk
|
||||||
|
* but we should, so this is probably the first time the
|
||||||
|
* user has flipped to this desk. let's be helpful and
|
||||||
|
* focus a random window!
|
||||||
|
*/
|
||||||
|
E_CLIENT_REVERSE_FOREACH(e_comp_get(desk), ec)
|
||||||
|
{
|
||||||
|
/* start with top and go down... */
|
||||||
|
if (e_client_util_ignored_get(ec)) continue;
|
||||||
|
if (!e_client_util_desk_visible(ec, desk)) continue;
|
||||||
|
if (ec->iconic) continue;
|
||||||
|
evas_object_focus_set(ec->frame, 1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
_e_desk_free(E_Desk *desk)
|
_e_desk_free(E_Desk *desk)
|
||||||
|
@ -704,97 +746,61 @@ _e_desk_event_desk_deskshow_free(void *data __UNUSED__, void *event)
|
||||||
static void
|
static void
|
||||||
_e_desk_event_desk_name_change_free(void *data __UNUSED__, void *event)
|
_e_desk_event_desk_name_change_free(void *data __UNUSED__, void *event)
|
||||||
{
|
{
|
||||||
E_Event_Desk_Name_Change *ev;
|
E_Event_Desk_Name_Change *ev = event;
|
||||||
|
|
||||||
ev = event;
|
|
||||||
e_object_unref(E_OBJECT(ev->desk));
|
e_object_unref(E_OBJECT(ev->desk));
|
||||||
free(ev);
|
free(ev);
|
||||||
}
|
}
|
||||||
|
|
||||||
#if (ECORE_VERSION_MAJOR > 1) || (ECORE_VERSION_MINOR >= 8)
|
|
||||||
static void
|
static void
|
||||||
_e_desk_event_desk_window_profile_change_free(void *data __UNUSED__, void *event)
|
_e_desk_event_desk_window_profile_change_free(void *data __UNUSED__, void *event)
|
||||||
{
|
{
|
||||||
E_Event_Desk_Window_Profile_Change *ev;
|
E_Event_Desk_Window_Profile_Change *ev = event;
|
||||||
ev = event;
|
|
||||||
e_object_unref(E_OBJECT(ev->desk));
|
e_object_unref(E_OBJECT(ev->desk));
|
||||||
E_FREE(ev);
|
E_FREE(ev);
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
static Eina_Bool
|
static Eina_Bool
|
||||||
_e_desk_transition_setup(E_Border *bd, int dx, int dy, int state)
|
_e_desk_transition_setup(E_Client *ec, int dx, int dy, int state)
|
||||||
{
|
{
|
||||||
e_comp_win_effect_set(bd->cw, e_config->desk_flip_animate_type ?: "none");
|
e_comp_object_effect_set(ec->frame, e_config->desk_flip_animate_type ?: "none");
|
||||||
if (e_config->desk_flip_animate_type)
|
if (e_config->desk_flip_animate_type)
|
||||||
{
|
{
|
||||||
/* set geoms */
|
/* set geoms */
|
||||||
e_comp_win_effect_params_set(bd->cw, 1, (int[]){bd->x - bd->zone->x, bd->y - bd->zone->y, bd->w, bd->h, bd->zone->w, bd->zone->h, dx, dy}, 8);
|
e_comp_object_effect_params_set(ec->frame, 1, (int[]){ec->x - ec->zone->x, ec->y - ec->zone->y, ec->w, ec->h, ec->zone->w, ec->zone->h, dx, dy}, 8);
|
||||||
e_comp_win_effect_params_set(bd->cw, 0, (int[]){state}, 1);
|
e_comp_object_effect_params_set(ec->frame, 0, (int[]){state}, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
return !!e_config->desk_flip_animate_type;
|
return !!e_config->desk_flip_animate_type;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
|
||||||
_e_desk_show_end_serious(E_Desk *desk)
|
|
||||||
{
|
|
||||||
E_Event_Desk_After_Show *ev;
|
|
||||||
|
|
||||||
ev = E_NEW(E_Event_Desk_After_Show, 1);
|
|
||||||
ev->desk = desk;
|
|
||||||
e_object_ref(E_OBJECT(ev->desk));
|
|
||||||
ecore_event_add(E_EVENT_DESK_AFTER_SHOW, ev,
|
|
||||||
_e_desk_event_desk_after_show_free, NULL);
|
|
||||||
|
|
||||||
if (!e_config->focus_last_focused_per_desktop) return;
|
|
||||||
if ((e_config->focus_policy == E_FOCUS_MOUSE) ||
|
|
||||||
(e_config->focus_policy == E_FOCUS_SLOPPY))
|
|
||||||
{
|
|
||||||
E_Border *bd;
|
|
||||||
|
|
||||||
bd = e_border_focused_get();
|
|
||||||
/* only set focus/warp pointer if currently focused window
|
|
||||||
* is on same screen (user hasn't switched screens during transition)
|
|
||||||
*/
|
|
||||||
if (bd && bd->desk && (bd->desk->zone != desk->zone))
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
e_desk_last_focused_focus(desk);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
_e_desk_show_end(void *data, Evas_Object *obj EINA_UNUSED, const char *emission EINA_UNUSED, const char *source EINA_UNUSED)
|
_e_desk_show_end(void *data, Evas_Object *obj EINA_UNUSED, const char *emission EINA_UNUSED, const char *source EINA_UNUSED)
|
||||||
{
|
{
|
||||||
E_Border *bd = data;
|
E_Client *ec = data;
|
||||||
|
|
||||||
bd->desk->animate_count--;
|
ec->desk->animate_count--;
|
||||||
e_border_comp_hidden_set(bd, bd->shaded);
|
e_client_comp_hidden_set(ec, ec->shaded);
|
||||||
if (bd->desk != e_desk_current_get(bd->zone)) return;
|
e_comp_object_effect_unclip(ec->frame);
|
||||||
e_comp_win_effect_unclip(bd->cw);
|
ec->hidden = 0;
|
||||||
if (!bd->visible) e_border_show(bd);
|
if (!ec->visible) evas_object_show(ec->frame);
|
||||||
if (bd->desk->animate_count) return;
|
if (ec->desk != e_desk_current_get(ec->zone)) return;
|
||||||
_e_desk_show_end_serious(bd->desk);
|
if (!ec->desk->animate_count) e_desk_flip_end(ec->desk);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
_e_desk_hide_end(void *data, Evas_Object *obj EINA_UNUSED, const char *emission EINA_UNUSED, const char *source EINA_UNUSED)
|
_e_desk_hide_end(void *data, Evas_Object *obj EINA_UNUSED, const char *emission EINA_UNUSED, const char *source EINA_UNUSED)
|
||||||
{
|
{
|
||||||
E_Border *bd = data;
|
E_Client *ec = data;
|
||||||
|
|
||||||
bd->desk->animate_count--;
|
ec->desk->animate_count--;
|
||||||
e_border_comp_hidden_set(bd, bd->shaded);
|
ec->hidden = 1;
|
||||||
e_border_hide(bd, 2);
|
evas_object_hide(ec->frame);
|
||||||
if (bd->desk->animate_count) return;
|
|
||||||
ecore_x_window_shadow_tree_flush();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
_e_desk_show_begin(E_Desk *desk, int dx, int dy)
|
_e_desk_show_begin(E_Desk *desk, int dx, int dy)
|
||||||
{
|
{
|
||||||
E_Border_List *bl;
|
E_Client *ec;
|
||||||
E_Border *bd;
|
|
||||||
|
|
||||||
if (dx < 0) dx = -1;
|
if (dx < 0) dx = -1;
|
||||||
if (dx > 0) dx = 1;
|
if (dx > 0) dx = 1;
|
||||||
|
@ -802,36 +808,43 @@ _e_desk_show_begin(E_Desk *desk, int dx, int dy)
|
||||||
if (dy > 0) dy = 1;
|
if (dy > 0) dy = 1;
|
||||||
|
|
||||||
desk->animate_count = 0;
|
desk->animate_count = 0;
|
||||||
bl = e_container_border_list_first(desk->zone->container);
|
if (_e_desk_flip_cb && e_config->desk_flip_animate_type)
|
||||||
while ((bd = e_container_border_list_next(bl)))
|
|
||||||
{
|
{
|
||||||
if ((bd->desk->zone != desk->zone) || (bd->iconic)) continue;
|
_e_desk_flip_cb(_e_desk_flip_data, desk, dx, dy, 1);
|
||||||
if (bd->moving)
|
return;
|
||||||
|
}
|
||||||
|
E_CLIENT_FOREACH(desk->zone->comp, ec)
|
||||||
|
{
|
||||||
|
if ((ec->desk->zone != desk->zone) || (ec->iconic) || e_client_util_ignored_get(ec)) continue;
|
||||||
|
if (ec->moving)
|
||||||
{
|
{
|
||||||
e_border_desk_set(bd, desk);
|
e_client_desk_set(ec, desk);
|
||||||
e_border_show(bd);
|
evas_object_show(ec->frame);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
if ((bd->desk != desk) || (bd->sticky)) continue;
|
if ((ec->desk != desk) || (ec->sticky)) continue;
|
||||||
if (_e_desk_transition_setup(bd, dx, dy, 1))
|
if (starting)
|
||||||
|
ec->hidden = 0;
|
||||||
|
else if (_e_desk_transition_setup(ec, dx, dy, 1))
|
||||||
{
|
{
|
||||||
e_comp_win_effect_stop(bd->cw, _e_desk_hide_end);
|
e_comp_object_effect_stop(ec->frame, _e_desk_hide_end);
|
||||||
e_comp_win_effect_start(bd->cw, _e_desk_show_end, bd);
|
e_comp_object_effect_start(ec->frame, _e_desk_show_end, ec);
|
||||||
desk->animate_count++;
|
desk->animate_count++;
|
||||||
e_border_comp_hidden_set(bd, EINA_TRUE);
|
|
||||||
}
|
}
|
||||||
e_border_show(bd);
|
else
|
||||||
|
ec->hidden = 0;
|
||||||
|
|
||||||
|
e_client_comp_hidden_set(ec, ec->hidden);
|
||||||
|
evas_object_show(ec->frame);
|
||||||
}
|
}
|
||||||
if ((!e_config->desk_flip_animate_type) || (!desk->animate_count))
|
if ((!e_config->desk_flip_animate_type) || (!desk->animate_count))
|
||||||
_e_desk_show_end_serious(desk);
|
e_desk_flip_end(desk);
|
||||||
e_container_border_list_free(bl);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
_e_desk_hide_begin(E_Desk *desk, int dx, int dy)
|
_e_desk_hide_begin(E_Desk *desk, int dx, int dy)
|
||||||
{
|
{
|
||||||
E_Border_List *bl;
|
E_Client *ec;
|
||||||
E_Border *bd;
|
|
||||||
|
|
||||||
if (dx < 0) dx = -1;
|
if (dx < 0) dx = -1;
|
||||||
if (dx > 0) dx = 1;
|
if (dx > 0) dx = 1;
|
||||||
|
@ -839,28 +852,31 @@ _e_desk_hide_begin(E_Desk *desk, int dx, int dy)
|
||||||
if (dy > 0) dy = 1;
|
if (dy > 0) dy = 1;
|
||||||
|
|
||||||
desk->animate_count = 0;
|
desk->animate_count = 0;
|
||||||
bl = e_container_border_list_first(desk->zone->container);
|
if (_e_desk_flip_cb && e_config->desk_flip_animate_type)
|
||||||
while ((bd = e_container_border_list_next(bl)))
|
|
||||||
{
|
{
|
||||||
if ((bd->desk->zone != desk->zone) || (bd->iconic)) continue;
|
_e_desk_flip_cb(_e_desk_flip_data, desk, dx, dy, 0);
|
||||||
if (bd->moving) continue;
|
return;
|
||||||
if ((bd->desk != desk) || (bd->sticky)) continue;
|
}
|
||||||
if (_e_desk_transition_setup(bd, -dx, -dy, 0))
|
E_CLIENT_FOREACH(desk->zone->comp, ec)
|
||||||
|
{
|
||||||
|
if ((ec->desk->zone != desk->zone) || (ec->iconic) || e_client_util_ignored_get(ec)) continue;
|
||||||
|
if (ec->moving) continue;
|
||||||
|
if ((ec->desk != desk) || (ec->sticky)) continue;
|
||||||
|
if ((!starting) && _e_desk_transition_setup(ec, -dx, -dy, 0))
|
||||||
{
|
{
|
||||||
e_comp_win_effect_stop(bd->cw, _e_desk_show_end);
|
e_comp_object_effect_stop(ec->frame, _e_desk_show_end);
|
||||||
e_comp_win_effect_start(bd->cw, _e_desk_hide_end, bd);
|
e_comp_object_effect_start(ec->frame, _e_desk_hide_end, ec);
|
||||||
desk->animate_count++;
|
desk->animate_count++;
|
||||||
e_border_comp_hidden_set(bd, EINA_TRUE);
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
e_border_hide(bd, 2);
|
{
|
||||||
|
ec->hidden = 1;
|
||||||
|
evas_object_hide(ec->frame);
|
||||||
|
}
|
||||||
|
e_client_comp_hidden_set(ec, EINA_TRUE);
|
||||||
}
|
}
|
||||||
if (!e_config->desk_flip_animate_type)
|
|
||||||
ecore_x_window_shadow_tree_flush();
|
|
||||||
e_container_border_list_free(bl);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#if (ECORE_VERSION_MAJOR > 1) || (ECORE_VERSION_MINOR >= 8)
|
|
||||||
static void
|
static void
|
||||||
_e_desk_window_profile_change_protocol_set(void)
|
_e_desk_window_profile_change_protocol_set(void)
|
||||||
{
|
{
|
||||||
|
@ -868,10 +884,5 @@ _e_desk_window_profile_change_protocol_set(void)
|
||||||
E_Manager *man;
|
E_Manager *man;
|
||||||
|
|
||||||
EINA_LIST_FOREACH(e_manager_list(), l, man)
|
EINA_LIST_FOREACH(e_manager_list(), l, man)
|
||||||
{
|
ecore_x_e_window_profile_supported_set(man->root, e_config->use_desktop_window_profile);
|
||||||
ecore_x_e_window_profile_supported_set
|
|
||||||
(man->root, e_config->use_desktop_window_profile);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
|
@ -7,6 +7,8 @@ typedef struct _E_Event_Desk_After_Show E_Event_Desk_After_Show;
|
||||||
typedef struct _E_Event_Desk_Name_Change E_Event_Desk_Name_Change;
|
typedef struct _E_Event_Desk_Name_Change E_Event_Desk_Name_Change;
|
||||||
typedef struct _E_Event_Desk_Window_Profile_Change E_Event_Desk_Window_Profile_Change;
|
typedef struct _E_Event_Desk_Window_Profile_Change E_Event_Desk_Window_Profile_Change;
|
||||||
|
|
||||||
|
typedef void (*E_Desk_Flip_Cb)(void *data, E_Desk *desk, int dx, int dy, Eina_Bool show);
|
||||||
|
|
||||||
#else
|
#else
|
||||||
#ifndef E_DESK_H
|
#ifndef E_DESK_H
|
||||||
#define E_DESK_H
|
#define E_DESK_H
|
||||||
|
@ -30,7 +32,7 @@ struct _E_Desk
|
||||||
int x, y;
|
int x, y;
|
||||||
unsigned char visible : 1;
|
unsigned char visible : 1;
|
||||||
unsigned int deskshow_toggle : 1;
|
unsigned int deskshow_toggle : 1;
|
||||||
int fullscreen_borders;
|
Eina_List *fullscreen_clients;
|
||||||
|
|
||||||
Evas_Object *bg_object;
|
Evas_Object *bg_object;
|
||||||
|
|
||||||
|
@ -66,12 +68,13 @@ EINTERN int e_desk_init(void);
|
||||||
EINTERN int e_desk_shutdown(void);
|
EINTERN int e_desk_shutdown(void);
|
||||||
EAPI E_Desk *e_desk_new(E_Zone *zone, int x, int y);
|
EAPI E_Desk *e_desk_new(E_Zone *zone, int x, int y);
|
||||||
EAPI void e_desk_name_set(E_Desk *desk, const char *name);
|
EAPI void e_desk_name_set(E_Desk *desk, const char *name);
|
||||||
EAPI void e_desk_name_add(int container, int zone, int desk_x, int desk_y, const char *name);
|
EAPI void e_desk_name_add(int manager, int zone, int desk_x, int desk_y, const char *name);
|
||||||
EAPI void e_desk_name_del(int container, int zone, int desk_x, int desk_y);
|
EAPI void e_desk_name_del(int manager, int zone, int desk_x, int desk_y);
|
||||||
EAPI void e_desk_name_update(void);
|
EAPI void e_desk_name_update(void);
|
||||||
EAPI void e_desk_show(E_Desk *desk);
|
EAPI void e_desk_show(E_Desk *desk);
|
||||||
EAPI void e_desk_deskshow(E_Zone *zone);
|
EAPI void e_desk_deskshow(E_Zone *zone);
|
||||||
EAPI E_Border *e_desk_last_focused_focus(E_Desk *desk);
|
EAPI E_Client *e_desk_last_focused_focus(E_Desk *desk);
|
||||||
|
EAPI E_Client *e_desk_client_top_visible_get(const E_Desk *desk);
|
||||||
EAPI E_Desk *e_desk_current_get(E_Zone *zone);
|
EAPI E_Desk *e_desk_current_get(E_Zone *zone);
|
||||||
EAPI E_Desk *e_desk_at_xy_get(E_Zone *zone, int x, int y);
|
EAPI E_Desk *e_desk_at_xy_get(E_Zone *zone, int x, int y);
|
||||||
EAPI E_Desk *e_desk_at_pos_get(E_Zone *zone, int pos);
|
EAPI E_Desk *e_desk_at_pos_get(E_Zone *zone, int pos);
|
||||||
|
@ -82,21 +85,20 @@ EAPI void e_desk_row_add(E_Zone *zone);
|
||||||
EAPI void e_desk_row_remove(E_Zone *zone);
|
EAPI void e_desk_row_remove(E_Zone *zone);
|
||||||
EAPI void e_desk_col_add(E_Zone *zone);
|
EAPI void e_desk_col_add(E_Zone *zone);
|
||||||
EAPI void e_desk_col_remove(E_Zone *zone);
|
EAPI void e_desk_col_remove(E_Zone *zone);
|
||||||
#if (ECORE_VERSION_MAJOR > 1) || (ECORE_VERSION_MINOR >= 8)
|
|
||||||
EAPI void e_desk_window_profile_set(E_Desk *desk, const char *profile);
|
EAPI void e_desk_window_profile_set(E_Desk *desk, const char *profile);
|
||||||
EAPI void e_desk_window_profile_add(int container, int zone, int desk_x, int desk_y, const char *profile);
|
EAPI void e_desk_window_profile_add(int manager, int zone, int desk_x, int desk_y, const char *profile);
|
||||||
EAPI void e_desk_window_profile_del(int container, int zone, int desk_x, int desk_y);
|
EAPI void e_desk_window_profile_del(int manager, int zone, int desk_x, int desk_y);
|
||||||
EAPI void e_desk_window_profile_update(void);
|
EAPI void e_desk_window_profile_update(void);
|
||||||
#endif
|
|
||||||
|
EAPI void e_desk_flip_cb_set(E_Desk_Flip_Cb cb, const void *data);
|
||||||
|
EAPI void e_desk_flip_end(E_Desk *desk);
|
||||||
|
|
||||||
extern EAPI int E_EVENT_DESK_SHOW;
|
extern EAPI int E_EVENT_DESK_SHOW;
|
||||||
extern EAPI int E_EVENT_DESK_BEFORE_SHOW;
|
extern EAPI int E_EVENT_DESK_BEFORE_SHOW;
|
||||||
extern EAPI int E_EVENT_DESK_AFTER_SHOW;
|
extern EAPI int E_EVENT_DESK_AFTER_SHOW;
|
||||||
extern EAPI int E_EVENT_DESK_DESKSHOW;
|
extern EAPI int E_EVENT_DESK_DESKSHOW;
|
||||||
extern EAPI int E_EVENT_DESK_NAME_CHANGE;
|
extern EAPI int E_EVENT_DESK_NAME_CHANGE;
|
||||||
#if (ECORE_VERSION_MAJOR > 1) || (ECORE_VERSION_MINOR >= 8)
|
|
||||||
extern EAPI int E_EVENT_DESK_WINDOW_PROFILE_CHANGE;
|
extern EAPI int E_EVENT_DESK_WINDOW_PROFILE_CHANGE;
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
1004
src/bin/e_desklock.c
1004
src/bin/e_desklock.c
File diff suppressed because it is too large
Load Diff
|
@ -1,6 +1,8 @@
|
||||||
#ifdef E_TYPEDEFS
|
#ifdef E_TYPEDEFS
|
||||||
|
|
||||||
typedef struct _E_Event_Desklock E_Event_Desklock;
|
typedef struct _E_Event_Desklock E_Event_Desklock;
|
||||||
|
typedef Eina_Bool (*E_Desklock_Show_Cb)(void);
|
||||||
|
typedef void (*E_Desklock_Hide_Cb)(void);
|
||||||
|
|
||||||
typedef enum _E_Desklock_Background_Method {
|
typedef enum _E_Desklock_Background_Method {
|
||||||
E_DESKLOCK_BACKGROUND_METHOD_THEME_DESKLOCK = 0,
|
E_DESKLOCK_BACKGROUND_METHOD_THEME_DESKLOCK = 0,
|
||||||
|
@ -8,6 +10,15 @@ typedef enum _E_Desklock_Background_Method {
|
||||||
E_DESKLOCK_BACKGROUND_METHOD_WALLPAPER,
|
E_DESKLOCK_BACKGROUND_METHOD_WALLPAPER,
|
||||||
E_DESKLOCK_BACKGROUND_METHOD_CUSTOM,
|
E_DESKLOCK_BACKGROUND_METHOD_CUSTOM,
|
||||||
} E_Desklock_Background_Method;
|
} E_Desklock_Background_Method;
|
||||||
|
|
||||||
|
typedef enum
|
||||||
|
{
|
||||||
|
E_DESKLOCK_AUTH_METHOD_SYSTEM = 0,
|
||||||
|
E_DESKLOCK_AUTH_METHOD_PERSONAL = 1,
|
||||||
|
E_DESKLOCK_AUTH_METHOD_EXTERNAL = 2,
|
||||||
|
E_DESKLOCK_AUTH_METHOD_PIN = 3,
|
||||||
|
} E_Desklock_Auth_Method;
|
||||||
|
|
||||||
#else
|
#else
|
||||||
#ifndef E_DESKLOCK_H
|
#ifndef E_DESKLOCK_H
|
||||||
#define E_DESKLOCK_H
|
#define E_DESKLOCK_H
|
||||||
|
@ -26,7 +37,33 @@ EAPI int e_desklock_show_autolocked(void);
|
||||||
EAPI void e_desklock_hide(void);
|
EAPI void e_desklock_hide(void);
|
||||||
EAPI Eina_Bool e_desklock_state_get(void);
|
EAPI Eina_Bool e_desklock_state_get(void);
|
||||||
|
|
||||||
|
EAPI void e_desklock_create_callback_set(E_Desklock_Show_Cb cb);
|
||||||
|
EAPI void e_desklock_destroy_callback_set(E_Desklock_Hide_Cb cb);
|
||||||
|
EAPI Eina_Stringshare *e_desklock_user_wallpaper_get(E_Zone *zone);
|
||||||
|
EAPI void e_desklock_show_hook_add(E_Desklock_Show_Cb cb);
|
||||||
|
EAPI void e_desklock_show_hook_del(E_Desklock_Show_Cb cb);
|
||||||
|
EAPI void e_desklock_hide_hook_add(E_Desklock_Hide_Cb cb);
|
||||||
|
EAPI void e_desklock_hide_hook_del(E_Desklock_Hide_Cb cb);
|
||||||
|
|
||||||
extern EAPI int E_EVENT_DESKLOCK;
|
extern EAPI int E_EVENT_DESKLOCK;
|
||||||
|
|
||||||
|
static inline Eina_Bool
|
||||||
|
e_desklock_is_external(void)
|
||||||
|
{
|
||||||
|
return e_config->desklock_auth_method == E_DESKLOCK_AUTH_METHOD_EXTERNAL;
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline Eina_Bool
|
||||||
|
e_desklock_is_personal(void)
|
||||||
|
{
|
||||||
|
return e_config->desklock_auth_method == E_DESKLOCK_AUTH_METHOD_PERSONAL;
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline Eina_Bool
|
||||||
|
e_desklock_is_system(void)
|
||||||
|
{
|
||||||
|
return e_config->desklock_auth_method == E_DESKLOCK_AUTH_METHOD_SYSTEM;
|
||||||
|
}
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -1,6 +1,12 @@
|
||||||
#include "e.h"
|
#include "e.h"
|
||||||
|
|
||||||
#define INTERNAL_ENTRY E_Smart_Data * sd; sd = evas_object_smart_data_get(obj); if (!sd) return;
|
#define SMART_NAME "e_deskmirror"
|
||||||
|
|
||||||
|
#define INTERNAL_ENTRY E_Smart_Data *sd; sd = evas_object_smart_data_get(obj); if (!sd) return;
|
||||||
|
|
||||||
|
#define API_ENTRY(X) E_Smart_Data *sd; \
|
||||||
|
sd = evas_object_smart_data_get(X); \
|
||||||
|
if ((!X) || (!sd) || (e_util_strcmp(evas_object_type_get(X), SMART_NAME))) return
|
||||||
|
|
||||||
typedef struct E_Smart_Data
|
typedef struct E_Smart_Data
|
||||||
{
|
{
|
||||||
|
@ -30,10 +36,12 @@ typedef struct Mirror
|
||||||
{
|
{
|
||||||
EINA_INLIST;
|
EINA_INLIST;
|
||||||
E_Smart_Data *sd;
|
E_Smart_Data *sd;
|
||||||
E_Comp_Win *cw;
|
E_Client *ec;
|
||||||
|
Evas_Object *comp_object;
|
||||||
Evas_Object *mirror;
|
Evas_Object *mirror;
|
||||||
int x, y, w, h;
|
int x, y, w, h;
|
||||||
Eina_Bool frame : 1;
|
Eina_Bool frame : 1;
|
||||||
|
Eina_Bool added : 1;
|
||||||
} Mirror;
|
} Mirror;
|
||||||
|
|
||||||
typedef struct Mirror_Border
|
typedef struct Mirror_Border
|
||||||
|
@ -44,17 +52,58 @@ typedef struct Mirror_Border
|
||||||
Evas_Object *obj;
|
Evas_Object *obj;
|
||||||
} Mirror_Border;
|
} Mirror_Border;
|
||||||
|
|
||||||
/* local subsystem globals */
|
|
||||||
static Evas_Smart *_e_deskmirror_smart = NULL;
|
static Evas_Smart *_e_deskmirror_smart = NULL;
|
||||||
static Evas_Smart *_mirror_border_smart = NULL;
|
static Evas_Smart *_mirror_client_smart = NULL;
|
||||||
|
|
||||||
|
static void _e_deskmirror_mirror_setup(Mirror *m);
|
||||||
|
static void _comp_object_hide(Mirror *m, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED);
|
||||||
|
static void _comp_object_show(Mirror *m, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED);
|
||||||
|
static void _comp_object_stack(Mirror *m, Evas *e EINA_UNUSED, Evas_Object *obj, void *event_info EINA_UNUSED);
|
||||||
|
static void _comp_object_configure(Mirror *m, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED);
|
||||||
|
|
||||||
|
static Eina_Bool
|
||||||
|
_e_deskmirror_visible_get(E_Smart_Data *sd, Mirror *m)
|
||||||
|
{
|
||||||
|
Eina_Bool visible = evas_object_visible_get(m->comp_object);
|
||||||
|
if (m->ec)
|
||||||
|
{
|
||||||
|
visible = m->ec->visible;
|
||||||
|
/* iconic flips meaning of visible flag at this point
|
||||||
|
* where "this point" is defined as being during the show
|
||||||
|
* callback for a client
|
||||||
|
*/
|
||||||
|
if (m->sd->handlers && m->ec->iconic)
|
||||||
|
visible = !m->ec->visible;
|
||||||
|
if (visible)
|
||||||
|
{
|
||||||
|
visible = (sd->desk == m->ec->desk) || (m->ec->sticky);
|
||||||
|
if (sd->pager)
|
||||||
|
visible = !m->ec->netwm.state.skip_pager;
|
||||||
|
if (visible && sd->taskbar)
|
||||||
|
visible = !m->ec->netwm.state.skip_taskbar;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if ((m->w < 1) || (m->h < 1)) visible = EINA_FALSE;
|
||||||
|
return visible;
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
_mirror_visible_apply(Mirror *m)
|
||||||
|
{
|
||||||
|
if (_e_deskmirror_visible_get(m->sd, m))
|
||||||
|
evas_object_show(m->mirror);
|
||||||
|
else
|
||||||
|
evas_object_hide(m->mirror);
|
||||||
|
}
|
||||||
|
|
||||||
/* local subsystem functions */
|
|
||||||
static void
|
static void
|
||||||
_mirror_scale_set(Mirror *m, float sc)
|
_mirror_scale_set(Mirror *m, float sc)
|
||||||
{
|
{
|
||||||
Edje_Message_Float_Set msg;
|
Edje_Message_Float_Set msg;
|
||||||
Mirror_Border *mb;
|
Mirror_Border *mb;
|
||||||
|
|
||||||
|
/* FIXME: broken */
|
||||||
|
return;
|
||||||
if (!m->frame) return;
|
if (!m->frame) return;
|
||||||
|
|
||||||
mb = evas_object_smart_data_get(m->mirror);
|
mb = evas_object_smart_data_get(m->mirror);
|
||||||
|
@ -106,6 +155,7 @@ static void
|
||||||
_e_deskmirror_smart_del(Evas_Object *obj)
|
_e_deskmirror_smart_del(Evas_Object *obj)
|
||||||
{
|
{
|
||||||
INTERNAL_ENTRY;
|
INTERNAL_ENTRY;
|
||||||
|
e_object_unref(E_OBJECT(sd->desk));
|
||||||
if (sd->desk_delfn)
|
if (sd->desk_delfn)
|
||||||
{
|
{
|
||||||
e_object_delfn_del(E_OBJECT(sd->desk), sd->desk_delfn);
|
e_object_delfn_del(E_OBJECT(sd->desk), sd->desk_delfn);
|
||||||
|
@ -114,6 +164,9 @@ _e_deskmirror_smart_del(Evas_Object *obj)
|
||||||
}
|
}
|
||||||
E_FREE_LIST(sd->handlers, ecore_event_handler_del);
|
E_FREE_LIST(sd->handlers, ecore_event_handler_del);
|
||||||
eina_hash_free(sd->mirror_hash);
|
eina_hash_free(sd->mirror_hash);
|
||||||
|
evas_object_del(sd->clip);
|
||||||
|
evas_object_del(sd->bgpreview);
|
||||||
|
evas_object_del(sd->layout);
|
||||||
free(sd);
|
free(sd);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -174,23 +227,41 @@ _e_deskmirror_smart_clip_unset(Evas_Object *obj)
|
||||||
////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////
|
||||||
|
|
||||||
static void
|
static void
|
||||||
_e_deskmirror_mirror_frame_del_cb(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)
|
_e_deskmirror_mirror_frame_recalc_cb(void *data, Evas_Object *obj, void *event_info EINA_UNUSED)
|
||||||
{
|
{
|
||||||
Mirror_Border *mb = data;
|
Mirror *m = data;
|
||||||
|
Mirror_Border *mb;
|
||||||
|
|
||||||
if (mb->m->cw->bd && (!e_object_is_del(E_OBJECT(mb->m->cw->bd))))
|
|
||||||
|
if (m->frame)
|
||||||
{
|
{
|
||||||
evas_object_smart_member_del(mb->mirror);
|
mb = evas_object_smart_data_get(m->mirror);
|
||||||
mb->m->mirror = mb->mirror;
|
if (mb->m->ec && (!e_object_is_del(E_OBJECT(mb->m->ec))))
|
||||||
mb->m->frame = 0;
|
{
|
||||||
|
if (e_comp_object_frame_exists(obj)) return;
|
||||||
|
evas_object_smart_member_del(mb->mirror);
|
||||||
|
mb->m->mirror = mb->mirror;
|
||||||
|
mb->mirror = NULL;
|
||||||
|
mb->m->frame = 0;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
mb->m->comp_object = NULL;
|
||||||
|
evas_object_del(mb->obj);
|
||||||
|
e_layout_pack(m->sd->layout, m->mirror);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
mb->m->cw = NULL;
|
{
|
||||||
evas_object_del(mb->obj);
|
if (m->ec && (!e_object_is_del(E_OBJECT(m->ec))))
|
||||||
|
{
|
||||||
|
if (!e_comp_object_frame_exists(obj)) return;
|
||||||
|
e_layout_unpack(m->mirror);
|
||||||
|
_e_deskmirror_mirror_setup(m);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
_mirror_border_smart_add(Evas_Object *obj)
|
_mirror_client_smart_add(Evas_Object *obj)
|
||||||
{
|
{
|
||||||
Mirror_Border *mb;
|
Mirror_Border *mb;
|
||||||
|
|
||||||
|
@ -200,7 +271,7 @@ _mirror_border_smart_add(Evas_Object *obj)
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
_mirror_border_signal_cb(void *data, Evas_Object *obj EINA_UNUSED, const char *emission, const char *src)
|
_mirror_client_signal_cb(void *data, Evas_Object *obj EINA_UNUSED, const char *emission, const char *src)
|
||||||
{
|
{
|
||||||
Mirror_Border *mb = data;
|
Mirror_Border *mb = data;
|
||||||
edje_object_signal_emit(mb->frame, emission, src);
|
edje_object_signal_emit(mb->frame, emission, src);
|
||||||
|
@ -209,19 +280,18 @@ _mirror_border_signal_cb(void *data, Evas_Object *obj EINA_UNUSED, const char *e
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
_mirror_border_smart_del(Evas_Object *obj)
|
_mirror_client_smart_del(Evas_Object *obj)
|
||||||
{
|
{
|
||||||
Mirror_Border *mb = evas_object_smart_data_get(obj);
|
Mirror_Border *mb = evas_object_smart_data_get(obj);
|
||||||
if (mb->m->cw && mb->m->cw->bd)
|
if (mb->m->comp_object && mb->m->ec)
|
||||||
{
|
e_comp_object_signal_callback_del_full(mb->m->ec->frame, "*", "*", _mirror_client_signal_cb, mb);
|
||||||
evas_object_event_callback_del_full(mb->m->cw->bd->bg_object, EVAS_CALLBACK_DEL, _e_deskmirror_mirror_frame_del_cb, mb);
|
evas_object_del(mb->frame);
|
||||||
edje_object_signal_callback_del_full(mb->m->cw->bd->bg_object, "*", "*", _mirror_border_signal_cb, mb);
|
evas_object_del(mb->mirror);
|
||||||
}
|
|
||||||
free(mb);
|
free(mb);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
_mirror_border_smart_move(Evas_Object *obj, Evas_Coord x, Evas_Coord y)
|
_mirror_client_smart_move(Evas_Object *obj, Evas_Coord x, Evas_Coord y)
|
||||||
{
|
{
|
||||||
Mirror_Border *mb = evas_object_smart_data_get(obj);
|
Mirror_Border *mb = evas_object_smart_data_get(obj);
|
||||||
|
|
||||||
|
@ -229,64 +299,59 @@ _mirror_border_smart_move(Evas_Object *obj, Evas_Coord x, Evas_Coord y)
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
_mirror_border_smart_resize(Evas_Object *obj, Evas_Coord w, Evas_Coord h)
|
_mirror_client_smart_resize(Evas_Object *obj, Evas_Coord w, Evas_Coord h)
|
||||||
{
|
{
|
||||||
Mirror_Border *mb = evas_object_smart_data_get(obj);
|
Mirror_Border *mb = evas_object_smart_data_get(obj);
|
||||||
evas_object_resize(mb->frame, w, h);
|
evas_object_resize(mb->frame, w, h);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
_mirror_border_smart_show(Evas_Object *obj)
|
_mirror_client_smart_show(Evas_Object *obj)
|
||||||
{
|
{
|
||||||
Mirror_Border *mb = evas_object_smart_data_get(obj);
|
Mirror_Border *mb = evas_object_smart_data_get(obj);
|
||||||
evas_object_show(mb->frame);
|
evas_object_show(mb->frame);
|
||||||
evas_object_show(mb->mirror);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
_mirror_border_smart_hide(Evas_Object *obj)
|
_mirror_client_smart_hide(Evas_Object *obj)
|
||||||
{
|
{
|
||||||
Mirror_Border *mb = evas_object_smart_data_get(obj);
|
Mirror_Border *mb = evas_object_smart_data_get(obj);
|
||||||
evas_object_hide(mb->frame);
|
evas_object_hide(mb->frame);
|
||||||
evas_object_hide(mb->mirror);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
_mirror_border_smart_color_set(Evas_Object *obj, int r, int g, int b, int a)
|
_mirror_client_smart_color_set(Evas_Object *obj, int r, int g, int b, int a)
|
||||||
{
|
{
|
||||||
Mirror_Border *mb = evas_object_smart_data_get(obj);
|
Mirror_Border *mb = evas_object_smart_data_get(obj);
|
||||||
evas_object_color_set(mb->frame, r, g, b, a);
|
evas_object_color_set(mb->frame, r, g, b, a);
|
||||||
evas_object_color_set(mb->mirror, r, g, b, a);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
_mirror_border_smart_clip_set(Evas_Object *obj, Evas_Object *clip)
|
_mirror_client_smart_clip_set(Evas_Object *obj, Evas_Object *clip)
|
||||||
{
|
{
|
||||||
Mirror_Border *mb = evas_object_smart_data_get(obj);
|
Mirror_Border *mb = evas_object_smart_data_get(obj);
|
||||||
evas_object_clip_set(mb->frame, clip);
|
evas_object_clip_set(mb->frame, clip);
|
||||||
evas_object_clip_set(mb->mirror, clip);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
_mirror_border_smart_clip_unset(Evas_Object *obj)
|
_mirror_client_smart_clip_unset(Evas_Object *obj)
|
||||||
{
|
{
|
||||||
Mirror_Border *mb = evas_object_smart_data_get(obj);
|
Mirror_Border *mb = evas_object_smart_data_get(obj);
|
||||||
evas_object_clip_unset(mb->frame);
|
evas_object_clip_unset(mb->frame);
|
||||||
evas_object_clip_unset(mb->mirror);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
_mirror_border_smart_init(void)
|
_mirror_client_smart_init(void)
|
||||||
{
|
{
|
||||||
static const Evas_Smart_Class sc =
|
static const Evas_Smart_Class sc =
|
||||||
{
|
{
|
||||||
"mirror_border", EVAS_SMART_CLASS_VERSION,
|
"mirror_border", EVAS_SMART_CLASS_VERSION,
|
||||||
_mirror_border_smart_add, _mirror_border_smart_del, _mirror_border_smart_move, _mirror_border_smart_resize,
|
_mirror_client_smart_add, _mirror_client_smart_del, _mirror_client_smart_move, _mirror_client_smart_resize,
|
||||||
_mirror_border_smart_show, _mirror_border_smart_hide, _mirror_border_smart_color_set, _mirror_border_smart_clip_set,
|
_mirror_client_smart_show, _mirror_client_smart_hide, _mirror_client_smart_color_set, _mirror_client_smart_clip_set,
|
||||||
_mirror_border_smart_clip_unset, NULL, NULL, NULL, NULL, NULL, NULL, NULL
|
_mirror_client_smart_clip_unset, NULL, NULL, NULL, NULL, NULL, NULL, NULL
|
||||||
};
|
};
|
||||||
if (_mirror_border_smart) return;
|
if (_mirror_client_smart) return;
|
||||||
_mirror_border_smart = evas_smart_class_new(&sc);
|
_mirror_client_smart = evas_smart_class_new(&sc);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
@ -294,7 +359,7 @@ _e_deskmirror_smart_init(void)
|
||||||
{
|
{
|
||||||
static const Evas_Smart_Class sc =
|
static const Evas_Smart_Class sc =
|
||||||
{
|
{
|
||||||
"e_deskmirror", EVAS_SMART_CLASS_VERSION,
|
SMART_NAME, EVAS_SMART_CLASS_VERSION,
|
||||||
_e_deskmirror_smart_add, _e_deskmirror_smart_del, _e_deskmirror_smart_move, _e_deskmirror_smart_resize,
|
_e_deskmirror_smart_add, _e_deskmirror_smart_del, _e_deskmirror_smart_move, _e_deskmirror_smart_resize,
|
||||||
_e_deskmirror_smart_show, _e_deskmirror_smart_hide, _e_deskmirror_smart_color_set, _e_deskmirror_smart_clip_set,
|
_e_deskmirror_smart_show, _e_deskmirror_smart_hide, _e_deskmirror_smart_color_set, _e_deskmirror_smart_clip_set,
|
||||||
_e_deskmirror_smart_clip_unset, NULL, NULL, NULL, NULL, NULL, NULL, NULL
|
_e_deskmirror_smart_clip_unset, NULL, NULL, NULL, NULL, NULL, NULL, NULL
|
||||||
|
@ -311,27 +376,10 @@ _e_deskmirror_delfn(E_Smart_Data *sd, void *desk EINA_UNUSED)
|
||||||
evas_object_del(sd->obj);
|
evas_object_del(sd->obj);
|
||||||
}
|
}
|
||||||
|
|
||||||
static Eina_Bool
|
|
||||||
_e_deskmirror_win_visible_get(E_Smart_Data *sd, E_Comp_Win *cw)
|
|
||||||
{
|
|
||||||
Eina_Bool visible = cw->visible;
|
|
||||||
if (cw->bd)
|
|
||||||
{
|
|
||||||
if (visible)
|
|
||||||
{
|
|
||||||
if (sd->pager)
|
|
||||||
visible = !cw->bd->client.netwm.state.skip_pager;
|
|
||||||
if (visible && sd->taskbar)
|
|
||||||
visible = !cw->bd->client.netwm.state.skip_taskbar;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return visible;
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
_e_deskmirror_mirror_del(Mirror *m)
|
_e_deskmirror_mirror_del(Mirror *m)
|
||||||
{
|
{
|
||||||
eina_hash_del_by_key(m->sd->mirror_hash, &m->cw);
|
eina_hash_del_by_key(m->sd->mirror_hash, &m->comp_object);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
@ -340,37 +388,19 @@ _e_deskmirror_mirror_del_cb(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EI
|
||||||
_e_deskmirror_mirror_del(data);
|
_e_deskmirror_mirror_del(data);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
|
||||||
_e_deskmirror_mirror_del_hash(Mirror *m)
|
|
||||||
{
|
|
||||||
m->sd->mirrors = eina_inlist_remove(m->sd->mirrors, EINA_INLIST_GET(m));
|
|
||||||
evas_object_event_callback_del_full(m->mirror, EVAS_CALLBACK_DEL, _e_deskmirror_mirror_del_cb, m);
|
|
||||||
evas_object_del(m->mirror);
|
|
||||||
free(m);
|
|
||||||
}
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
_e_deskmirror_mirror_geometry_get(Mirror *m)
|
_e_deskmirror_mirror_geometry_get(Mirror *m)
|
||||||
{
|
{
|
||||||
if (m->cw->bd)
|
E_Zone *zone;
|
||||||
{
|
|
||||||
m->x = m->cw->bd->x;
|
evas_object_geometry_get(m->comp_object, &m->x, &m->y, &m->w, &m->h);
|
||||||
m->y = m->cw->bd->y;
|
zone = e_comp_object_util_zone_get(m->comp_object);
|
||||||
m->w = m->cw->bd->w;
|
if (zone)
|
||||||
if (m->cw->bd->shaded)
|
m->x -= zone->x, m->y -= zone->y;
|
||||||
m->h = m->cw->bd->client_inset.t;
|
|
||||||
else
|
|
||||||
m->h = m->cw->bd->h;
|
|
||||||
}
|
|
||||||
else if (m->cw->not_in_layout)
|
|
||||||
evas_object_geometry_get(m->cw->effect_obj, &m->x, &m->y, &m->w, &m->h);
|
|
||||||
else
|
|
||||||
e_layout_child_geometry_get(m->cw->effect_obj, &m->x, &m->y, &m->w, &m->h);
|
|
||||||
/* double check here if we get zeroes */
|
/* double check here if we get zeroes */
|
||||||
if ((!m->w) || (!m->h))
|
if ((!m->w) || (!m->h))
|
||||||
{
|
{
|
||||||
m->w = m->cw->w, m->h = m->cw->h;
|
ERR("ACK!");
|
||||||
m->x = m->cw->x, m->y = m->cw->y;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -380,49 +410,64 @@ _e_deskmirror_mirror_reconfigure(Mirror *m)
|
||||||
_e_deskmirror_mirror_geometry_get(m);
|
_e_deskmirror_mirror_geometry_get(m);
|
||||||
e_layout_child_move(m->mirror, m->x, m->y);
|
e_layout_child_move(m->mirror, m->x, m->y);
|
||||||
e_layout_child_resize(m->mirror, m->w, m->h);
|
e_layout_child_resize(m->mirror, m->w, m->h);
|
||||||
if (_e_deskmirror_win_visible_get(m->sd, m->cw) && m->w && m->h)
|
_mirror_visible_apply(m);
|
||||||
evas_object_show(m->mirror);
|
}
|
||||||
else
|
|
||||||
evas_object_hide(m->mirror);
|
static void
|
||||||
|
_e_deskmirror_mirror_del_hash(Mirror *m)
|
||||||
|
{
|
||||||
|
m->sd->mirrors = eina_inlist_remove(m->sd->mirrors, EINA_INLIST_GET(m));
|
||||||
|
evas_object_smart_callback_del_full(m->comp_object, "frame_recalc_done", _e_deskmirror_mirror_frame_recalc_cb, m);
|
||||||
|
evas_object_event_callback_del_full(m->comp_object, EVAS_CALLBACK_DEL, _e_deskmirror_mirror_del_cb, m);
|
||||||
|
evas_object_del(m->mirror);
|
||||||
|
evas_object_event_callback_del_full(m->comp_object, EVAS_CALLBACK_SHOW, (Evas_Object_Event_Cb)_comp_object_show, m);
|
||||||
|
evas_object_event_callback_del_full(m->comp_object, EVAS_CALLBACK_HIDE, (Evas_Object_Event_Cb)_comp_object_hide, m);
|
||||||
|
evas_object_event_callback_del_full(m->comp_object, EVAS_CALLBACK_RESTACK, (Evas_Object_Event_Cb)_comp_object_stack, m);
|
||||||
|
evas_object_event_callback_del_full(m->comp_object, EVAS_CALLBACK_RESIZE, (Evas_Object_Event_Cb)_comp_object_configure, m);
|
||||||
|
evas_object_event_callback_del_full(m->comp_object, EVAS_CALLBACK_MOVE, (Evas_Object_Event_Cb)_comp_object_configure, m);
|
||||||
|
free(m);
|
||||||
}
|
}
|
||||||
|
|
||||||
static Evas_Object *
|
static Evas_Object *
|
||||||
_mirror_border_new(Mirror *m)
|
_mirror_client_new(Mirror *m)
|
||||||
{
|
{
|
||||||
Evas_Object *o;
|
Evas_Object *o;
|
||||||
Mirror_Border *mb;
|
Mirror_Border *mb;
|
||||||
char buf[4096];
|
char buf[4096];
|
||||||
|
|
||||||
_mirror_border_smart_init();
|
_mirror_client_smart_init();
|
||||||
o = evas_object_smart_add(m->sd->e, _mirror_border_smart);
|
o = evas_object_smart_add(m->sd->e, _mirror_client_smart);
|
||||||
mb = evas_object_smart_data_get(o);
|
mb = evas_object_smart_data_get(o);
|
||||||
mb->m = m;
|
mb->m = m;
|
||||||
mb->frame = edje_object_add(m->sd->e);
|
mb->frame = edje_object_add(m->sd->e);
|
||||||
evas_object_name_set(mb->frame, "mirror_border");
|
evas_object_name_set(mb->frame, "mirror_border");
|
||||||
snprintf(buf, sizeof(buf), "e/deskmirror/frame/%s", m->cw->bd->client.border.name);
|
snprintf(buf, sizeof(buf), "e/deskmirror/frame/%s", m->ec->border.name);
|
||||||
e_theme_edje_object_set(mb->frame, "base/theme/borders", buf);
|
e_theme_edje_object_set(mb->frame, "base/theme/borders", buf);
|
||||||
if (e_util_border_shadow_state_get(m->cw->bd))
|
if (e_util_client_shadow_state_get(m->ec))
|
||||||
edje_object_signal_emit(mb->frame, "e,state,shadow,on", "e");
|
edje_object_signal_emit(mb->frame, "e,state,shadow,on", "e");
|
||||||
else
|
else
|
||||||
edje_object_signal_emit(mb->frame, "e,state,shadow,off", "e");
|
edje_object_signal_emit(mb->frame, "e,state,shadow,off", "e");
|
||||||
edje_object_signal_callback_add(mb->m->cw->bd->bg_object, "*", "*", _mirror_border_signal_cb, mb);
|
if (m->comp_object)
|
||||||
if (e_border_focused_get() == mb->m->cw->bd)
|
{
|
||||||
|
e_comp_object_signal_callback_add(mb->m->comp_object, "*", "*", _mirror_client_signal_cb, mb);
|
||||||
|
evas_object_event_callback_add(m->comp_object, EVAS_CALLBACK_DEL, _e_deskmirror_mirror_del_cb, m);
|
||||||
|
}
|
||||||
|
if (mb->m->ec->focused)
|
||||||
edje_object_signal_emit(mb->frame, "e,state,focused", "e");
|
edje_object_signal_emit(mb->frame, "e,state,focused", "e");
|
||||||
if (mb->m->cw->bd->shaded)
|
if (mb->m->ec->shaded)
|
||||||
edje_object_signal_emit(mb->frame, "e,state,shaded", "e");
|
edje_object_signal_emit(mb->frame, "e,state,shaded", "e");
|
||||||
if (mb->m->cw->bd->maximized)
|
if (mb->m->ec->maximized)
|
||||||
edje_object_signal_emit(mb->frame, "e,action,maximize", "e");
|
edje_object_signal_emit(mb->frame, "e,action,maximize", "e");
|
||||||
if (mb->m->cw->bd->sticky)
|
if (mb->m->ec->sticky)
|
||||||
edje_object_signal_emit(mb->frame, "e,state,sticky", "e");
|
edje_object_signal_emit(mb->frame, "e,state,sticky", "e");
|
||||||
|
|
||||||
mb->mirror = m->mirror;
|
mb->mirror = m->mirror;
|
||||||
evas_object_smart_member_add(mb->frame, o);
|
evas_object_smart_member_add(mb->frame, o);
|
||||||
evas_object_name_set(mb->mirror, "mirror");
|
evas_object_name_set(mb->mirror, "mirror");
|
||||||
evas_object_smart_member_add(mb->mirror, o);
|
|
||||||
edje_object_part_swallow(mb->frame, "e.swallow.client", m->mirror);
|
edje_object_part_swallow(mb->frame, "e.swallow.client", m->mirror);
|
||||||
edje_object_part_text_set(mb->frame, "e.text.title", m->cw->bd->client.netwm.name ?: m->cw->bd->client.icccm.name);
|
edje_object_part_text_set(mb->frame, "e.text.title", e_client_name_get(m->ec));
|
||||||
_mirror_scale_set(m, (double)m->sd->h / (double)m->sd->desk->zone->h);
|
if (m->sd->h)
|
||||||
evas_object_event_callback_add(m->cw->bd->bg_object, EVAS_CALLBACK_DEL, _e_deskmirror_mirror_frame_del_cb, mb);
|
_mirror_scale_set(m, (double)m->sd->h / (double)m->sd->desk->zone->h);
|
||||||
return o;
|
return o;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -430,151 +475,207 @@ static void
|
||||||
_e_deskmirror_mirror_setup(Mirror *m)
|
_e_deskmirror_mirror_setup(Mirror *m)
|
||||||
{
|
{
|
||||||
if (!m->mirror) return;
|
if (!m->mirror) return;
|
||||||
if (m->cw->bd && m->cw->bd->bg_object)
|
evas_object_event_callback_del_full(m->comp_object, EVAS_CALLBACK_DEL, _e_deskmirror_mirror_del_cb, m);
|
||||||
|
if (m->ec && e_comp_object_frame_exists(m->comp_object))
|
||||||
{
|
{
|
||||||
m->mirror = _mirror_border_new(m);
|
m->mirror = _mirror_client_new(m);
|
||||||
m->frame = 1;
|
m->frame = 1;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
evas_object_pass_events_set(m->mirror, 1);
|
{
|
||||||
|
evas_object_pass_events_set(m->mirror, !m->ec);
|
||||||
|
evas_object_event_callback_add(m->comp_object, EVAS_CALLBACK_DEL, _e_deskmirror_mirror_del_cb, m);
|
||||||
|
}
|
||||||
|
if (m->ec) evas_object_data_set(m->mirror, "E_Client", m->ec);
|
||||||
|
evas_object_precise_is_inside_set(m->mirror, m->ec && m->ec->shaped);
|
||||||
e_layout_pack(m->sd->layout, m->mirror);
|
e_layout_pack(m->sd->layout, m->mirror);
|
||||||
evas_object_event_callback_add(m->mirror, EVAS_CALLBACK_DEL, _e_deskmirror_mirror_del_cb, m);
|
_e_deskmirror_mirror_reconfigure(m);
|
||||||
|
if (m->sd->handlers) // no handlers = we're setting up = there's no possible listeners
|
||||||
|
{
|
||||||
|
_comp_object_stack(m, NULL, m->comp_object, NULL);
|
||||||
|
if (!m->added)
|
||||||
|
evas_object_smart_callback_call(m->sd->obj, "mirror_add", m->mirror);
|
||||||
|
}
|
||||||
|
m->added = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
static Eina_Bool
|
||||||
|
_comp_object_check(Mirror *m)
|
||||||
|
{
|
||||||
|
int w, h;
|
||||||
|
|
||||||
|
evas_object_geometry_get(m->comp_object, NULL, NULL, &w, &h);
|
||||||
|
if ((w < 2) || (h < 2)) return EINA_FALSE;
|
||||||
|
m->mirror = e_comp_object_util_mirror_add(m->comp_object);
|
||||||
|
if (m->mirror) evas_object_layer_set(m->mirror, evas_object_layer_get(m->comp_object));
|
||||||
|
_e_deskmirror_mirror_setup(m);
|
||||||
|
return EINA_TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
_comp_object_hide(Mirror *m, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)
|
||||||
|
{
|
||||||
|
_mirror_visible_apply(m);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
_comp_object_show(Mirror *m, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)
|
||||||
|
{
|
||||||
|
if (!m->mirror)
|
||||||
|
{
|
||||||
|
if (!_comp_object_check(m)) return;
|
||||||
|
}
|
||||||
|
_mirror_visible_apply(m);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
_comp_object_stack(Mirror *m, Evas *e EINA_UNUSED, Evas_Object *obj, void *event_info EINA_UNUSED)
|
||||||
|
{
|
||||||
|
Evas_Object *comp_object;
|
||||||
|
|
||||||
|
if (!m->mirror)
|
||||||
|
{
|
||||||
|
if (!_comp_object_check(m)) return;
|
||||||
|
}
|
||||||
|
comp_object = evas_object_below_get(obj);
|
||||||
|
while (comp_object)
|
||||||
|
{
|
||||||
|
Mirror *m2;
|
||||||
|
|
||||||
|
m2 = eina_hash_find(m->sd->mirror_hash, &comp_object);
|
||||||
|
if (m2 && m2->mirror)
|
||||||
|
{
|
||||||
|
e_layout_child_raise_above(m->mirror, m2->mirror);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
comp_object = evas_object_below_get(comp_object);
|
||||||
|
}
|
||||||
|
e_layout_child_lower(m->mirror);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
_comp_object_configure(Mirror *m, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)
|
||||||
|
{
|
||||||
|
if (!m->mirror)
|
||||||
|
{
|
||||||
|
if (!_comp_object_check(m)) return;
|
||||||
|
}
|
||||||
_e_deskmirror_mirror_reconfigure(m);
|
_e_deskmirror_mirror_reconfigure(m);
|
||||||
}
|
}
|
||||||
|
|
||||||
static Mirror *
|
static Mirror *
|
||||||
_e_deskmirror_mirror_add(E_Smart_Data *sd, E_Comp_Win *cw)
|
_e_deskmirror_mirror_add(E_Smart_Data *sd, Evas_Object *obj)
|
||||||
{
|
{
|
||||||
Mirror *m;
|
Mirror *m;
|
||||||
Evas_Object *o = NULL;
|
Evas_Object *o = NULL;
|
||||||
|
E_Client *ec;
|
||||||
|
int w, h;
|
||||||
|
|
||||||
if (cw->bd)
|
if (sd->desk->zone != e_comp_object_util_zone_get(obj)) return NULL;
|
||||||
|
|
||||||
|
ec = e_comp_object_client_get(obj);
|
||||||
|
if (ec)
|
||||||
{
|
{
|
||||||
if ((cw->bd->zone != sd->desk->zone) || ((cw->bd->desk != sd->desk) && (!cw->bd->sticky)))
|
if ((ec->desk != sd->desk) && (!ec->sticky))
|
||||||
|
return NULL;
|
||||||
|
if (ec->input_only || ec->ignored)
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
int x, y;
|
E_Shelf *es;
|
||||||
|
|
||||||
if (!sd->desk->visible) return NULL;
|
if (sd->pager || sd->taskbar) return NULL;
|
||||||
if (cw->not_in_layout)
|
es = evas_object_data_get(obj, "E_Shelf");
|
||||||
evas_object_geometry_get(cw->effect_obj, &x, &y, NULL, NULL);
|
if (es)
|
||||||
|
{
|
||||||
|
if (!e_shelf_desk_visible(es, sd->desk)) return NULL;
|
||||||
|
}
|
||||||
else
|
else
|
||||||
e_layout_child_geometry_get(cw->effect_obj, &x, &y, NULL, NULL);
|
{
|
||||||
if (!E_INSIDE(x, y, sd->desk->zone->x, sd->desk->zone->y, sd->desk->zone->w, sd->desk->zone->h)) return NULL;
|
if (sd->desk != e_desk_current_get(sd->desk->zone)) return NULL;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if ((cw->w > 1) && (cw->h > 1))
|
evas_object_geometry_get(obj, NULL, NULL, &w, &h);
|
||||||
|
if ((w > 1) && (h > 1))
|
||||||
{
|
{
|
||||||
o = e_comp_win_image_mirror_add(cw);
|
o = e_comp_object_util_mirror_add(obj);
|
||||||
if (!o) return NULL;
|
|
||||||
}
|
}
|
||||||
m = calloc(1, sizeof(Mirror));
|
m = calloc(1, sizeof(Mirror));
|
||||||
m->cw = cw;
|
m->comp_object = obj;
|
||||||
|
m->ec = ec;
|
||||||
m->sd = sd;
|
m->sd = sd;
|
||||||
m->mirror = o;
|
m->mirror = o;
|
||||||
|
if (o) evas_object_layer_set(o, evas_object_layer_get(obj));
|
||||||
|
evas_object_event_callback_add(obj, EVAS_CALLBACK_SHOW, (Evas_Object_Event_Cb)_comp_object_show, m);
|
||||||
|
evas_object_event_callback_add(obj, EVAS_CALLBACK_HIDE, (Evas_Object_Event_Cb)_comp_object_hide, m);
|
||||||
|
evas_object_event_callback_add(obj, EVAS_CALLBACK_RESTACK, (Evas_Object_Event_Cb)_comp_object_stack, m);
|
||||||
|
evas_object_event_callback_add(obj, EVAS_CALLBACK_RESIZE, (Evas_Object_Event_Cb)_comp_object_configure, m);
|
||||||
|
evas_object_event_callback_add(obj, EVAS_CALLBACK_MOVE, (Evas_Object_Event_Cb)_comp_object_configure, m);
|
||||||
|
evas_object_smart_callback_add(obj, "frame_recalc_done", _e_deskmirror_mirror_frame_recalc_cb, m);
|
||||||
sd->mirrors = eina_inlist_append(sd->mirrors, EINA_INLIST_GET(m));
|
sd->mirrors = eina_inlist_append(sd->mirrors, EINA_INLIST_GET(m));
|
||||||
eina_hash_direct_add(sd->mirror_hash, &m->cw, m);
|
eina_hash_add(sd->mirror_hash, &obj, m);
|
||||||
_e_deskmirror_mirror_setup(m);
|
_e_deskmirror_mirror_setup(m);
|
||||||
return m;
|
return m;
|
||||||
}
|
}
|
||||||
|
|
||||||
static Eina_Bool
|
static Eina_Bool
|
||||||
_comp_source_add(E_Smart_Data *sd, int type EINA_UNUSED, E_Event_Comp *ev)
|
_comp_object_add(E_Smart_Data *sd, int type EINA_UNUSED, E_Event_Comp_Object *ev)
|
||||||
{
|
{
|
||||||
if (eina_hash_find(sd->mirror_hash, &ev->cw)) return ECORE_CALLBACK_RENEW;
|
if (eina_hash_find(sd->mirror_hash, &ev->comp_object)) return ECORE_CALLBACK_RENEW;
|
||||||
_e_deskmirror_mirror_add(sd, ev->cw);
|
_e_deskmirror_mirror_add(sd, ev->comp_object);
|
||||||
return ECORE_CALLBACK_RENEW;
|
return ECORE_CALLBACK_RENEW;
|
||||||
}
|
}
|
||||||
|
|
||||||
static Eina_Bool
|
static Eina_Bool
|
||||||
_comp_source_visible(E_Smart_Data *sd, int type EINA_UNUSED, E_Event_Comp *ev)
|
_client_desk_set(E_Smart_Data *sd, int type EINA_UNUSED, E_Event_Client_Desk_Set *ev)
|
||||||
{
|
{
|
||||||
Mirror *m;
|
Mirror *m;
|
||||||
|
|
||||||
m = eina_hash_find(sd->mirror_hash, &ev->cw);
|
m = eina_hash_find(sd->mirror_hash, &ev->ec->frame);
|
||||||
if (!m) return ECORE_CALLBACK_RENEW;
|
|
||||||
if (!m->mirror)
|
|
||||||
{
|
|
||||||
if ((m->cw->w < 2) || (m->cw->h < 2)) return ECORE_CALLBACK_RENEW;
|
|
||||||
m->mirror = e_comp_win_image_mirror_add(m->cw);
|
|
||||||
_e_deskmirror_mirror_setup(m);
|
|
||||||
}
|
|
||||||
if (_e_deskmirror_win_visible_get(m->sd, m->cw))
|
|
||||||
evas_object_show(m->mirror);
|
|
||||||
else
|
|
||||||
evas_object_hide(m->mirror);
|
|
||||||
return ECORE_CALLBACK_RENEW;
|
|
||||||
}
|
|
||||||
|
|
||||||
static Eina_Bool
|
|
||||||
_comp_source_stack(E_Smart_Data *sd, int type EINA_UNUSED, E_Event_Comp *ev)
|
|
||||||
{
|
|
||||||
Mirror *m, *m2;
|
|
||||||
E_Comp_Win *cw;
|
|
||||||
|
|
||||||
m = eina_hash_find(sd->mirror_hash, &ev->cw);
|
|
||||||
if (!m) return ECORE_CALLBACK_RENEW;
|
|
||||||
if (!m->mirror)
|
|
||||||
{
|
|
||||||
if ((m->cw->w < 2) || (m->cw->h < 2)) return ECORE_CALLBACK_RENEW;
|
|
||||||
m->mirror = e_comp_win_image_mirror_add(m->cw);
|
|
||||||
_e_deskmirror_mirror_setup(m);
|
|
||||||
}
|
|
||||||
if (!EINA_INLIST_GET(ev->cw)->next)
|
|
||||||
e_layout_child_raise(m->mirror);
|
|
||||||
else if (!EINA_INLIST_GET(ev->cw)->prev)
|
|
||||||
e_layout_child_lower(m->mirror);
|
|
||||||
else
|
|
||||||
{
|
|
||||||
EINA_INLIST_FOREACH(EINA_INLIST_GET(ev->cw)->next, cw)
|
|
||||||
{
|
|
||||||
m2 = eina_hash_find(sd->mirror_hash, &cw);
|
|
||||||
if ((!m2) || (!m2->mirror)) continue;
|
|
||||||
e_layout_child_lower_below(m->mirror, m2->mirror);
|
|
||||||
return ECORE_CALLBACK_RENEW;
|
|
||||||
}
|
|
||||||
e_layout_child_raise(m->mirror);
|
|
||||||
}
|
|
||||||
return ECORE_CALLBACK_RENEW;
|
|
||||||
}
|
|
||||||
|
|
||||||
static Eina_Bool
|
|
||||||
_comp_source_configure(E_Smart_Data *sd, int type EINA_UNUSED, E_Event_Comp *ev)
|
|
||||||
{
|
|
||||||
Mirror *m;
|
|
||||||
|
|
||||||
m = eina_hash_find(sd->mirror_hash, &ev->cw);
|
|
||||||
if (m)
|
if (m)
|
||||||
{
|
{
|
||||||
if (!m->mirror)
|
/* ev->desk is previous desk */
|
||||||
{
|
if ((ev->desk == sd->desk) && (!ev->ec->sticky))
|
||||||
if ((m->cw->w < 2) || (m->cw->h < 2)) return ECORE_CALLBACK_RENEW;
|
eina_hash_del_by_key(sd->mirror_hash, &ev->ec->frame);
|
||||||
m->mirror = e_comp_win_image_mirror_add(m->cw);
|
|
||||||
_e_deskmirror_mirror_setup(m);
|
|
||||||
}
|
|
||||||
_e_deskmirror_mirror_reconfigure(m);
|
|
||||||
}
|
}
|
||||||
|
if (sd->desk == ev->ec->desk)
|
||||||
|
_e_deskmirror_mirror_add(sd, ev->ec->frame);
|
||||||
|
return ECORE_CALLBACK_RENEW;
|
||||||
|
}
|
||||||
|
|
||||||
|
static Eina_Bool
|
||||||
|
_client_property(E_Smart_Data *sd, int type EINA_UNUSED, E_Event_Client_Property *ev)
|
||||||
|
{
|
||||||
|
Mirror *m;
|
||||||
|
|
||||||
|
if (!(ev->property & E_CLIENT_PROPERTY_NETWM_STATE)) return ECORE_CALLBACK_RENEW;
|
||||||
|
|
||||||
|
m = eina_hash_find(sd->mirror_hash, &ev->ec->frame);
|
||||||
|
if (m) _mirror_visible_apply(m);
|
||||||
return ECORE_CALLBACK_RENEW;
|
return ECORE_CALLBACK_RENEW;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* externally accessible functions */
|
/* externally accessible functions */
|
||||||
EAPI Evas_Object *
|
EAPI Evas_Object *
|
||||||
e_deskmirror_add(E_Desk *desk)
|
e_deskmirror_add(E_Desk *desk, Eina_Bool pager, Eina_Bool taskbar)
|
||||||
{
|
{
|
||||||
E_Smart_Data *sd;
|
E_Smart_Data *sd;
|
||||||
Evas_Object *o;
|
Evas_Object *o, *l;
|
||||||
Evas *e;
|
Evas *e;
|
||||||
E_Comp_Win *cw;
|
|
||||||
|
|
||||||
e = e_comp_get(desk)->evas;
|
e = e_comp_get(desk)->evas;
|
||||||
_e_deskmirror_smart_init();
|
_e_deskmirror_smart_init();
|
||||||
o = evas_object_smart_add(e, _e_deskmirror_smart);
|
o = evas_object_smart_add(e, _e_deskmirror_smart);
|
||||||
|
e_object_ref(E_OBJECT(desk));
|
||||||
sd = evas_object_smart_data_get(o);
|
sd = evas_object_smart_data_get(o);
|
||||||
|
sd->pager = !!pager;
|
||||||
|
sd->taskbar = !!taskbar;
|
||||||
sd->desk = desk;
|
sd->desk = desk;
|
||||||
sd->mirror_hash = eina_hash_pointer_new((Eina_Free_Cb)_e_deskmirror_mirror_del_hash);
|
sd->mirror_hash = eina_hash_pointer_new((Eina_Free_Cb)_e_deskmirror_mirror_del_hash);
|
||||||
sd->desk_delfn = e_object_delfn_add(E_OBJECT(desk), (Ecore_End_Cb)_e_deskmirror_delfn, sd);
|
sd->desk_delfn = e_object_delfn_add(E_OBJECT(desk), (Ecore_End_Cb)_e_deskmirror_delfn, sd);
|
||||||
sd->bgpreview = e_widget_bgpreview_desk_add(e, desk->zone, desk->x, desk->y);
|
sd->bgpreview = e_widget_bgpreview_desk_add(e, desk->zone, desk->x, desk->y);
|
||||||
|
evas_object_pass_events_set(sd->bgpreview, 1);
|
||||||
evas_object_clip_set(sd->bgpreview, sd->clip);
|
evas_object_clip_set(sd->bgpreview, sd->clip);
|
||||||
evas_object_smart_member_add(sd->bgpreview, o);
|
evas_object_smart_member_add(sd->bgpreview, o);
|
||||||
evas_object_show(sd->bgpreview);
|
evas_object_show(sd->bgpreview);
|
||||||
|
@ -584,25 +685,78 @@ e_deskmirror_add(E_Desk *desk)
|
||||||
evas_object_smart_member_add(sd->layout, o);
|
evas_object_smart_member_add(sd->layout, o);
|
||||||
evas_object_show(sd->layout);
|
evas_object_show(sd->layout);
|
||||||
|
|
||||||
|
e_comp_object_util_center_on(o, sd->desk->zone->bg_clip_object);
|
||||||
|
|
||||||
e_layout_freeze(sd->layout);
|
e_layout_freeze(sd->layout);
|
||||||
|
|
||||||
EINA_INLIST_FOREACH(e_comp_get(desk)->wins, cw)
|
l = evas_object_bottom_get(e_comp_get(desk)->evas);
|
||||||
|
do
|
||||||
{
|
{
|
||||||
Mirror *m;
|
if (evas_object_data_get(l, "comp_object"))
|
||||||
|
_e_deskmirror_mirror_add(sd, l);
|
||||||
m = _e_deskmirror_mirror_add(sd, cw);
|
l = evas_object_above_get(l);
|
||||||
if (m) e_layout_child_raise(m->mirror);
|
} while (l);
|
||||||
}
|
|
||||||
|
|
||||||
e_layout_thaw(sd->layout);
|
e_layout_thaw(sd->layout);
|
||||||
|
|
||||||
E_LIST_HANDLER_APPEND(sd->handlers, E_EVENT_COMP_SOURCE_ADD, _comp_source_add, sd);
|
E_LIST_HANDLER_APPEND(sd->handlers, E_EVENT_COMP_OBJECT_ADD, (Ecore_Event_Handler_Cb)_comp_object_add, sd);
|
||||||
E_LIST_HANDLER_APPEND(sd->handlers, E_EVENT_COMP_SOURCE_CONFIGURE, _comp_source_configure, sd);
|
E_LIST_HANDLER_APPEND(sd->handlers, E_EVENT_CLIENT_PROPERTY, (Ecore_Event_Handler_Cb)_client_property, sd);
|
||||||
E_LIST_HANDLER_APPEND(sd->handlers, E_EVENT_COMP_SOURCE_STACK, _comp_source_stack, sd);
|
E_LIST_HANDLER_APPEND(sd->handlers, E_EVENT_CLIENT_DESK_SET, (Ecore_Event_Handler_Cb)_client_desk_set, sd);
|
||||||
E_LIST_HANDLER_APPEND(sd->handlers, E_EVENT_COMP_SOURCE_VISIBILITY, _comp_source_visible, sd);
|
|
||||||
return o;
|
return o;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
EAPI Evas_Object *
|
||||||
|
e_deskmirror_mirror_find(Evas_Object *deskmirror, Evas_Object *comp_object)
|
||||||
|
{
|
||||||
|
Mirror *m;
|
||||||
|
EINA_SAFETY_ON_NULL_RETURN_VAL(deskmirror, NULL);
|
||||||
|
EINA_SAFETY_ON_NULL_RETURN_VAL(comp_object, NULL);
|
||||||
|
API_ENTRY(deskmirror) NULL;
|
||||||
|
|
||||||
|
m = eina_hash_find(sd->mirror_hash, &comp_object);
|
||||||
|
return m ? m->mirror : NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
EAPI Eina_List *
|
||||||
|
e_deskmirror_mirror_list(Evas_Object *deskmirror)
|
||||||
|
{
|
||||||
|
Eina_List *l = NULL;
|
||||||
|
Mirror *m;
|
||||||
|
|
||||||
|
EINA_SAFETY_ON_NULL_RETURN_VAL(deskmirror, NULL);
|
||||||
|
API_ENTRY(deskmirror) NULL;
|
||||||
|
|
||||||
|
EINA_INLIST_FOREACH(sd->mirrors, m)
|
||||||
|
{
|
||||||
|
if (m->mirror)
|
||||||
|
l = eina_list_append(l, m->mirror);
|
||||||
|
}
|
||||||
|
return l;
|
||||||
|
}
|
||||||
|
|
||||||
|
EAPI void
|
||||||
|
e_deskmirror_coord_canvas_to_virtual(Evas_Object *obj, Evas_Coord cx, Evas_Coord cy, Evas_Coord *vx, Evas_Coord *vy)
|
||||||
|
{
|
||||||
|
API_ENTRY(obj);
|
||||||
|
|
||||||
|
e_layout_coord_canvas_to_virtual(sd->layout, cx, cy, vx, vy);
|
||||||
|
}
|
||||||
|
|
||||||
|
EAPI void
|
||||||
|
e_deskmirror_coord_virtual_to_canvas(Evas_Object *obj, Evas_Coord vx, Evas_Coord vy, Evas_Coord *cx, Evas_Coord *cy)
|
||||||
|
{
|
||||||
|
API_ENTRY(obj);
|
||||||
|
|
||||||
|
e_layout_coord_virtual_to_canvas(sd->layout, vx, vy, cx, cy);
|
||||||
|
}
|
||||||
|
|
||||||
|
EAPI E_Desk *
|
||||||
|
e_deskmirror_desk_get(Evas_Object *obj)
|
||||||
|
{
|
||||||
|
API_ENTRY(obj) NULL;
|
||||||
|
return sd->desk;
|
||||||
|
}
|
||||||
|
|
||||||
EAPI void
|
EAPI void
|
||||||
e_deskmirror_util_wins_print(Evas_Object *obj)
|
e_deskmirror_util_wins_print(Evas_Object *obj)
|
||||||
{
|
{
|
||||||
|
@ -613,15 +767,14 @@ e_deskmirror_util_wins_print(Evas_Object *obj)
|
||||||
sd = evas_object_smart_data_get(obj);
|
sd = evas_object_smart_data_get(obj);
|
||||||
EINA_INLIST_FOREACH(sd->mirrors, m)
|
EINA_INLIST_FOREACH(sd->mirrors, m)
|
||||||
{
|
{
|
||||||
if (m->cw->bd)
|
if (m->ec)
|
||||||
fprintf(stderr, "MIRROR BD: %p - %u '%s:%s'\n", m->cw, m->cw->win, m->cw->bd->client.icccm.name, m->cw->bd->client.icccm.class);
|
{
|
||||||
else if (m->cw->pop)
|
if (m->ec->override)
|
||||||
fprintf(stderr, "MIRROR POP: %p - %s\n", m->cw, m->cw->pop->name);
|
fprintf(stderr, "MIRROR OVERRIDE: %p - %p%s\n", m->comp_object, m->ec, m->ec->input_only ? " INPUT" : "");
|
||||||
else if (m->cw->menu)
|
else
|
||||||
fprintf(stderr, "MIRROR MENU: %p - %s\n", m->cw, m->cw->menu->header.title);
|
fprintf(stderr, "MIRROR EC: %p - %p '%s:%s'\n", m->comp_object, m->ec, m->ec->icccm.name, m->ec->icccm.class);
|
||||||
else if (m->cw->real_obj)
|
}
|
||||||
fprintf(stderr, "MIRROR OBJ: %p - %s\n", m->cw, evas_object_name_get(m->cw->obj));
|
|
||||||
else
|
else
|
||||||
fprintf(stderr, "MIRROR WIN: %p - %u%s\n", m->cw, m->cw->win, m->cw->input_only ? " INPUT" : "");
|
fprintf(stderr, "MIRROR OBJ: %p\n", m->comp_object);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue