diff --git a/packages/webview_flutter/example/tizen/shared/res/input.html b/packages/webview_flutter/example/tizen/shared/res/input.html
index f9c9613ff..1725547d7 100644
--- a/packages/webview_flutter/example/tizen/shared/res/input.html
+++ b/packages/webview_flutter/example/tizen/shared/res/input.html
@@ -3,7 +3,7 @@
-
+
diff --git a/packages/webview_flutter/lib/webview_flutter_tizen.dart b/packages/webview_flutter/lib/webview_flutter_tizen.dart
index dafa1dfb0..f80730135 100644
--- a/packages/webview_flutter/lib/webview_flutter_tizen.dart
+++ b/packages/webview_flutter/lib/webview_flutter_tizen.dart
@@ -6,17 +6,11 @@ import 'package:flutter/gestures.dart';
import 'package:flutter/services.dart';
import 'package:flutter/widgets.dart';
import 'package:flutter/semantics.dart';
+import 'package:flutter/rendering.dart';
import 'package:webview_flutter/platform_interface.dart';
import 'package:webview_flutter/src/webview_method_channel.dart';
-import 'package:flutter/src/rendering/binding.dart';
-import 'package:flutter/src/rendering/box.dart';
-import 'package:flutter/src/rendering/layer.dart';
-import 'package:flutter/src/rendering/mouse_cursor.dart';
-import 'package:flutter/src/rendering/mouse_tracking.dart';
-import 'package:flutter/src/rendering/object.dart';
-
enum _TizenViewState {
waitingForSize,
creating,
@@ -110,7 +104,7 @@ class TizenViewController extends PlatformViewController {
'viewType': _viewType,
'width': _size.width,
'height': _size.height,
- // 'direction': _layoutDirection,
+ 'direction': _layoutDirection == TextDirection.ltr ? 0 : 1,
};
if (_creationParams != null) {
final ByteData paramsByteData =
@@ -151,6 +145,7 @@ class TizenViewController extends PlatformViewController {
set pointTransformer(PointTransformer transformer) {
assert(transformer != null);
+ // _motionEventConverter._pointTransformer = transformer;
}
bool get isCreated => _state == _TizenViewState.created;
@@ -182,7 +177,7 @@ class TizenViewController extends PlatformViewController {
await SystemChannels.platform_views
.invokeMethod('setDirection', {
'id': viewId,
- // 'direction': layoutDirection,
+ 'direction': layoutDirection == TextDirection.ltr ? 0 : 1,
});
}
@@ -218,13 +213,14 @@ class TizenViewController extends PlatformViewController {
if (_state != _TizenViewState.created) {
return Future.value();
}
- // print('clearFocus : $viewId');
+ print('TizenViewController::clearFocus() : $viewId');
return SystemChannels.platform_views
.invokeMethod('clearFocus', viewId);
}
@override
Future dispose() async {
+ print('TizenViewController::dispose()');
if (_state == _TizenViewState.creating || _state == _TizenViewState.created)
await _sendDisposeMessage();
_platformViewCreatedCallbacks.clear();
@@ -233,8 +229,8 @@ class TizenViewController extends PlatformViewController {
}
}
-class TizenWebView_ extends StatefulWidget {
- const TizenWebView_({
+class TizenView extends StatefulWidget {
+ const TizenView({
Key key,
@required this.viewType,
this.onPlatformViewCreated,
@@ -257,7 +253,7 @@ class TizenWebView_ extends StatefulWidget {
final MessageCodec creationParamsCodec;
@override
- State createState() => _TizenWebViewState();
+ State createState() => _TizenWebViewState();
}
class PlatformViewsServiceTizen {
@@ -268,9 +264,11 @@ class PlatformViewsServiceTizen {
PlatformViewsServiceTizen._();
Future _onMethodCall(MethodCall call) {
+ print('TizenView::_onMethodCall() - ${call.method}');
switch (call.method) {
case 'viewFocused':
final int id = call.arguments as int;
+ print('viewFocused: id - $id');
if (_focusCallbacks.containsKey(id)) {
if (_focusCallbacks[id] != null) {
_focusCallbacks[id]();
@@ -301,6 +299,9 @@ class PlatformViewsServiceTizen {
assert(layoutDirection != null);
assert(creationParams == null || creationParamsCodec != null);
+ print(
+ 'PlatformViewsServiceTizen::initTizenView [id:$id] [onFocus:$onFocus]');
+
final TizenViewController controller = TizenViewController._(
viewId: id,
viewType: viewType,
@@ -444,12 +445,12 @@ class RenderTizenView extends RenderBox with _PlatformViewGestureMixin {
_viewController.pointTransformer = (Offset offset) => globalToLocal(offset);
updateGestureRecognizers(gestureRecognizers);
_viewController.addOnPlatformViewCreatedListener(_onPlatformViewCreated);
- // this.hitTestBehavior = hitTestBehavior;
+ this.hitTestBehavior = hitTestBehavior;
}
_PlatformViewState _state = _PlatformViewState.uninitialized;
- get viewcontroller => _viewController;
+ TizenViewController get viewcontroller => _viewController;
TizenViewController _viewController;
set viewController(TizenViewController viewController) {
@@ -570,12 +571,12 @@ class _TizenPlatformTextureView extends LeafRenderObjectWidget {
@override
void updateRenderObject(BuildContext context, RenderTizenView renderObject) {
renderObject.viewController = controller;
- // renderObject.hitTestBehavior = hitTestBehavior;
+ renderObject.hitTestBehavior = hitTestBehavior;
renderObject.updateGestureRecognizers(gestureRecognizers);
}
}
-class _TizenWebViewState extends State {
+class _TizenWebViewState extends State {
int _id;
TizenViewController _controller;
TextDirection _layoutDirection;
@@ -611,6 +612,7 @@ class _TizenWebViewState extends State {
@override
void didChangeDependencies() {
+ print('_TizenWebViewState::didChangeDependencies()');
super.didChangeDependencies();
final TextDirection newLayoutDirection = _findLayoutDirection();
final bool didChangeLayoutDirection =
@@ -624,8 +626,8 @@ class _TizenWebViewState extends State {
}
@override
- void didUpdateWidget(TizenWebView_ oldWidget) {
- // print('webview: didUpdateWidget()');
+ void didUpdateWidget(TizenView oldWidget) {
+ print('_TizenWebViewState::didUpdateWidget()');
super.didUpdateWidget(oldWidget);
final TextDirection newLayoutDirection = _findLayoutDirection();
@@ -652,6 +654,7 @@ class _TizenWebViewState extends State {
@override
void dispose() {
+ print('_TizenWebViewState::dispose()');
_controller.dispose();
super.dispose();
}
@@ -665,6 +668,7 @@ class _TizenWebViewState extends State {
creationParams: widget.creationParams,
creationParamsCodec: widget.creationParamsCodec,
onFocus: () {
+ print('_TizenWebViewState::_createNewTizenWebView() - onFocus()');
_focusNode.requestFocus();
},
);
@@ -675,9 +679,11 @@ class _TizenWebViewState extends State {
}
void _onFocusChange(bool isFocused) {
+ print('_TizenWebViewState::_onFocusChange(isFocused:$isFocused)');
if (!_controller.isCreated) {
return;
}
+
if (!isFocused) {
_controller.clearFocus().catchError((dynamic e) {
if (e is MissingPluginException) {
@@ -686,7 +692,6 @@ class _TizenWebViewState extends State {
});
return;
}
- // print('_onFocusChange - viewId : $_id');
SystemChannels.textInput
.invokeMethod(
'TextInput.setPlatformViewClient',
@@ -725,7 +730,7 @@ class TizenWebView implements WebViewPlatform {
return GestureDetector(
onLongPress: () {},
excludeFromSemantics: true,
- child: TizenWebView_(
+ child: TizenView(
viewType: 'plugins.flutter.io/webview',
onPlatformViewCreated: (int id) {
if (onWebViewPlatformCreated == null) {
@@ -769,7 +774,7 @@ mixin _PlatformViewGestureMixin on RenderBox implements MouseTrackerAnnotation {
if (value != _hitTestBehavior) {
_hitTestBehavior = value;
if (owner != null) {
- //RendererBinding.instance.mouseTracker.schedulePostFrameCheck();
+ markNeedsPaint();
}
}
}