@@ -63,10 +63,13 @@ Widget defaultEmbedBuilder(BuildContext context, QuillController controller,
6363 text: 'Resize' .i18n,
6464 onPressed: () {
6565 Navigator .pop (context);
66+ final res = _getImageNode (controller);
6667 showCupertinoModalPopup <void >(
6768 context: context,
6869 builder: (context) {
6970 return ImageResizer (
71+ imageNode: res.item2! ,
72+ offset: res.item1! ,
7073 imageWidth: _widthHeight? .item1,
7174 imageHeight: _widthHeight? .item2,
7275 maxWidth: MediaQuery .of (context).size.width,
@@ -80,16 +83,9 @@ Widget defaultEmbedBuilder(BuildContext context, QuillController controller,
8083 color: Colors .cyanAccent,
8184 text: 'Copy' .i18n,
8285 onPressed: () {
83- var offset = controller.selection.start;
84- var imageNode = controller.queryNode (offset);
85- if (imageNode == null || ! (imageNode is leaf.Embed )) {
86- offset = max (0 , offset - 1 );
87- imageNode = controller.queryNode (offset);
88- }
89- if (imageNode != null && imageNode is leaf.Embed ) {
90- final imageUrl = imageNode.value.data;
91- controller.copiedImageUrl = imageUrl;
92- }
86+ final imageNode = _getImageNode (controller).item2! ;
87+ final imageUrl = imageNode.value.data;
88+ controller.copiedImageUrl = imageUrl;
9389 Navigator .pop (context);
9490 },
9591 );
@@ -98,11 +94,7 @@ Widget defaultEmbedBuilder(BuildContext context, QuillController controller,
9894 color: Colors .red.shade200,
9995 text: 'Remove' .i18n,
10096 onPressed: () {
101- var offset = controller.selection.start;
102- final imageNode = controller.queryNode (offset);
103- if (imageNode == null || ! (imageNode is leaf.Embed )) {
104- offset = max (0 , offset - 1 );
105- }
97+ final offset = _getImageNode (controller).item1! ;
10698 controller.replaceText (offset, 1 , '' ,
10799 TextSelection .collapsed (offset: offset));
108100 Navigator .pop (context);
@@ -143,6 +135,20 @@ Widget defaultEmbedBuilder(BuildContext context, QuillController controller,
143135 }
144136}
145137
138+ Tuple2 <int ?, leaf.Embed ?> _getImageNode (QuillController controller) {
139+ var offset = controller.selection.start;
140+ var imageNode = controller.queryNode (offset);
141+ if (imageNode == null || ! (imageNode is leaf.Embed )) {
142+ offset = max (0 , offset - 1 );
143+ imageNode = controller.queryNode (offset);
144+ }
145+ if (imageNode != null && imageNode is leaf.Embed ) {
146+ return Tuple2 (offset, imageNode);
147+ }
148+
149+ return const Tuple2 (null , null );
150+ }
151+
146152Widget _menuOptionsForReadonlyImage (
147153 BuildContext context, String imageUrl, Image image) {
148154 return GestureDetector (
0 commit comments