Commit Graph

82 Commits

Author SHA1 Message Date
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
Julian Winkler
e3c0931714 prevent reference cycles between Java and native objects 2024-08-02 17:02:53 +02:00
Mis012
004ba4ff00 remove some old debugging prints, gate others behind verbose log 2024-06-22 14:35:56 +02:00
Julian Winkler
c5e0f8a7fd View.draw(): draw background, content, children in same order as AOSP 2024-05-27 16:37:49 +00:00
Julian Winkler
6f02565920 GskCanavas: draw default content when custom View calls super.onDraw() 2024-05-27 16:37:49 +00:00
Julian Winkler
c56dd88fb6 fix View.getGlobalVisibleRect() for 0x0 allocated Views
fixes commit f82af6ecb7
2024-05-20 08:12:28 +02:00
Julian Winkler
0ebbfc9461 set GTK_OVERFLOW_HIDDEN again for WrapperWidgets with allocation
This is needed for RecyclerView, which will be allocated because of the
onTouch() listener.
2024-05-11 13:17:54 +02:00
Julian Winkler
e4a399f849 use AndroidLayout for all JavaWidgets 2024-05-11 07:07:24 +02:00
Julian Winkler
f82af6ecb7 allocate transparent {WrapperWidget / JavaWidget} 0x0 and draw children in overflow area
This prevents overlay widgets from blocking touch events.

Androids ViewGroup.dispatchTouchEvent() loops over all children and only breaks if an eventhandler returns true. Gtk on the other hand stops at the first sensitive child. Even if the eventhandler returned false.
2024-05-11 07:07:24 +02:00
Julian Winkler
64411c75aa fix build on Debian 12 / GTK 4.8 2024-05-06 07:28:56 +02:00
Mis012
31929d2253 ignore deprecation warnings for per-widget css, switch gtk_widget_translate_coordinates to gtk_widget_compute_point 2024-04-20 16:34:01 +02:00
Julian Winkler
654d551377 View.setTranslationY(): queue allocate when called on CoordinatorLayout
androidx adjusts the translation a little bit and immediately
reverts it to trigger a layout pass on the CoordinatorLayout.

Calling gtk_widget_queue_allocate here makes CoordinatorLayout behave
correctly, but it causes strange issues with other Views. Therefore, it is
done only for CoordinatorLayouts for now.
2024-03-28 20:50:05 +01:00
Julian Winkler
66e5d77959 View: clear canceled_event pointer
This is needed, as GdkEvent pointers are not guaranteed to be unique
2024-03-28 20:50:05 +01:00
Julian Winkler
e477b56dec OnTouchListener: attach event controllers to WrapperWidget
otherwise, the touch event positions would depend on the scroll offset.
This fixes the glitchy vertical scrolling in ViewPager
2024-03-25 19:50:29 +01:00
Julian Winkler
19f1747e0d View.getGlobalVisibleRect(): surface transform needs to be added 2024-03-15 19:51:02 +01:00