Julian Winkler
9e27cccc0d
View.c: remove some uneccesary allocations which confuse composeUI apps
2025-07-28 22:27:50 +02:00
Julian Winkler
e5a6ef7251
AndroidLayout: ignore mesaure and allocate calls during drawing phase
2025-07-28 22:27:50 +02:00
Julian Winkler
b7843665ef
handle drag-and-drop events as ACTION_SEND Intents
2025-07-14 12:25:04 +02:00
Mis012
6031eecefc
api-impl-jni: add workarounds for Gtk's non-graceful handling of layout changes during the snapshot phase
2025-06-20 22:36:09 +02:00
Mis012
364070fa1f
api-impl: misc stubs and formatting fixes
2025-06-08 13:42:42 +02:00
Julian Winkler
3d4f386db0
View.setFullscreen(): mock the window size while request is pending
2025-06-04 22:48:23 +02:00
Julian Winkler
12d25c162f
onClickListener: stop event propagation if click was handled
2025-06-02 20:06:57 +02:00
Julian Winkler
ec45faaf87
View.dispatchTouchEvent(): implement ACTION_CANCEL for sythetic events
2025-04-19 15:32:27 +02:00
Julian Winkler
bd83e211d0
handle onClickListener for synthesized MotionEvents
...
Since synthesized events can't be handled by GTK, we also need to handle
gestures by ourself in that case.
2025-04-18 07:21:21 +02:00
Mis012
4d12ad5c90
View: add basic implemntation of dispatchTouchEvent
...
Some Views block all events going to their descendants, and
then synthesize new events themselves. Gtk doesn't allow event
synthesization, which makes this quite annoying to deal with.
This initial implementation definiely has some problems,
for example it seems to cause infinite loops in some cases,
however it surprisingly works well enough.
2025-03-26 20:06:15 +01:00
Julian Winkler
15a6432d01
Revert "View: call onLayout() only on size change or on request"
...
This reverts commit b33a470c7b .
This commit was added as fix for layout recreation loops, but this is no
longer a problem, since ViewGroup.detachViewFromParent() has been
improved. The first fix is no longer needed and it seems to cause some
minor regressions, so we revert it.
2025-03-25 23:34:56 +01:00
Julian Winkler
b33a470c7b
View: call onLayout() only on size change or on request
...
GTK always wants us to call gtk_widget_allocate() on all children, so we
need to do it manually when not calling onLayout().
2025-03-02 00:05:59 +01:00
Mis012
ab5b600bf1
run whitespace_format.py --add-new-line-marker-at-end-of-file --remove-trailing-whitespace --remove-trailing-empty-lines --new-line-marker=linux --normalize-non-standard-whitespace=remove on src/
2025-02-05 16:27:17 +01:00
Mis012
465b3ebbfe
View: support multitouch properly
...
seems to work, but there might still be some edge cases
2025-01-15 00:06:06 +01:00
Julian Winkler
785c24af62
implement View.setKeepScreenOn()
2025-01-11 23:23:53 +01:00
Julian Winkler
0dfcb9324f
drop GTK < 4.14 ifdefs
2024-12-22 23:40:11 +01:00
Julian Winkler
47fc749018
implement WindowManager for composeUI popups
...
currently everything is created as GtkPopover which is not ideal for
toplevel windows, so print a warning in that case.
2024-12-17 22:38:09 +01:00
Julian Winkler
967e6e9b94
AndroidLayout: prevent unnecessary measurements between two JavaWidgets
...
GTK sometimes calls widget_measure() from widget_allocate(). This is
unnecessary if the parent and child are both JavaWidgets and these
unexpected measurements can confuse Views.
2024-12-15 18:06:58 +01:00
Julian Winkler
864750020e
View: always call dispatchTouchEvent() if overwritten
2024-12-13 22:32:04 +01:00
Julian Winkler
fe7790c4ff
View: implement requestFocus() and isFocused()
2024-12-01 14:15:00 +00:00
Julian Winkler
d0952101a6
implement some Canvas methods needed for composeUI
2024-12-01 14:15:00 +00:00
Daniel Panero
be93b4c396
JavaWidget: add css classes and default_stylesheet.css
2024-11-26 16:33:38 +01:00
Daniel Panero
fb6565e535
Add paddings and improved margins
2024-11-18 21:39:01 +00:00
Julian Winkler
6068ac2eb8
View.setSystemUiVisibility(): implement fullscreen
...
For now we only allow fullscreen for maximized windows
2024-10-31 20:30:15 +01:00
Julian Winkler
c492e1f03f
add Java APIs needed for WhatsApp MainActivity and ConversationActivity
2024-10-03 15:57:44 +02:00